Copyright © 2001, 2006 Eric S. Raymond, Rick Moen
| Ιστορικό Αναθεωρήσεων | ||
|---|---|---|
| Αναθεώρηση 3.5 | 2 Ιαν 2008 | esr |
| Τυπογραφικό λάθος και σύνδεσμοι μεταφράσεων. | ||
| Αναθεώρηση 3.4 | 24 Μαρ 2007 | esr |
| Ενότητα νέων, "Όταν ρωτάς για κώδικα". | ||
| Αναθεώρηση 3.3 | 29 Σεπ 2006 | esr |
| Προσθήκη μίας καλής πρότασης από τον Kai Niggemann. | ||
| Αναθεώρηση 3.2 | 10 Ιαν 2006 | esr |
| Προσθήκη αλλαγών από τον Rick Moen. | ||
| Αναθεώρηση 3.1 | 28 Οκτ 2004 | esr |
| Τεκμηρίωση του 'Το Google είναι φίλος σου!' | ||
| Αναθεώρηση 3.0 | 2 Φεβ 2004 | esr |
| Μείζονες προσθήκες σχετικά με σωστή συμπεριφορά σε online forums. | ||
Πίνακας Περιεχομένων
Μεταφράσεις: Bahasa Ινδονησιακά Βραζιλο-Πορτογαλλικά Κινέζικα Τσέχικα Δανικά Ολλανδικά Εσθονικά Φινλανδικά Γαλλικά Γρηγοριανά Γερμανικά Εβραϊκά Ουγγρικά Ιταλικά Ιαπωνικά Πολωνικά Πορτογαλικά Ρομανικά Ρώσικα Σέρβικα Ισπανικά Σουηδικά Ταϊλανδικά Τούρκικα. Αν θέλεις να αντιγράψεις, να ανεβάσεις στο Διαδίκτυο, να μεταφράσεις, ή να δανειστείς ένα απόσπασμα από το παρόν κείμενο, παρακαλώ βλέπε την πολιτική αντιγραφής που έχω.
Πολλές ιστοσελίδες από projects έχουν συνδέσμους προς αυτό το έγγραφο στις ενότητες σχετικά με την λήψη βοήθειας. Αυτό είναι εντάξει, είναι η χρήση την οποία είχαμε σκοπό να έχει -- αλλά αν διατηρείς μία ιστοσελίδα και δημιουργείς ένα τέτοιο σύνδεσμο για την σελίδα του project σου, παρακαλώ δημιούργησε μία σαφή σημείωση κοντά στο σύνδεσμο που να δείχνει ότι δεν είμαστε το τμήμα υποστήριξης για το πρόγραμμά σου!
Μάθαμε, με άσχημο τρόπο, ότι χωρίς μία τέτοια σημείωση, θα ενοχλούμαστε συνεχώς από ηλίθιους που θεωρούν ότι έχοντας δημοσιεύσει αυτό το έγγραφο κάνει δουλειά μας το να λύσουμε όλα τα τεχνικά προβλήματα του κόσμου.
Αν διαβάζεις αυτό το έγγραφο επειδή χρειάζεσαι βοήθεια, και φεύγεις με την εντύπωση ότι μπορείς να την λάβεις από τους συντάκτες, εσύ είσαι ένας από τους ηλίθιους που αναφέρθηκαν. Μην κάνεις σε εμάς τις ερωτήσεις. Απλώς θα σε αγνοήσουμε. Βρισκόμαστε εδώ για να σου δείξουμε πώς να λάβεις βοήθεια από τους ανθρώπους που πραγματικά γνωρίζουν σχετικά με το λογισμικό ή το υλικό το οποίο χειρίζεσαι, όμως στο 99% των περιπτώσεων αυτοί δεν θα είμαστε εμείς. Εκτός και αν ξέρεις σίγουρα ότι ένας από τους συντάκτες είναι ειδικός σε αυτό που σε ενδιαφέρει, άσε μας ήσυχους και όλοι θα είμαστε χαρούμενοι.
Στον κόσμο των hackers, το είδος των απαντήσεων που λαμβάνεις στις τεχνικές σου ερωτήσεις εξαρτάται τόσο από τον τρόπο που κάνεις τις ερωτήσεις όσο και από την δυσκολία της δημιουργίας της απάντησης. Αυτός ο οδηγός θα σου διδάξει πώς να κάνεις ερωτήσεις με τρόπο τέτοιο ώστε να είναι πιο πιθανό να λάβεις ικανοποιητικές απαντήσεις.
Τώρα που η χρήση λογισμικού ανοιχτού κώδικα έχει διαδοθεί, μπορείς συχνά να λάβεις εξίσου καλές απαντήσεις από άλλους, έμπειρους χρήστες όσο και από hackers. Αυτό είναι ένα Καλό Πράγμα - οι χρήστες τείνουν να είναι πιο ανεκτικοί στους τύπους αποτυχίας που έχουν συχνά οι νέοι χρήστες. Παρ' όλα αυτά, το να συμπεριφέρεσαι στους έμπειρους χρήστες όπως στους hackers με τον τρόπο που προτείνουμε εδώ θα είναι γενικά ο πιο αποδοτικός τρόπος να λάβεις βοηθητικές απαντήσεις και από αυτούς.
Το πρώτο πράγμα που πρέπει να καταλάβεις είναι ότι στους hackers πράγματι αρέσουν τα δύσκολα προβλήματα και οι καλές ερωτήσεις που προωθούν την σκέψη και τα αφορούν. Αν δεν μας άρεσαν, δεν θα ήμασταν εδώ που είμαστε. Αν μας δώσεις μία ενδιαφέρουσα ερώτηση για να σκεφτούμε, θα σου είμαστε ευγνώμονες -- οι καλές ερωτήσεις είναι καλά ερεθίσματα και δώρα. Οι καλές ερωτήσεις μας βοηθούν να αναπτύξουμε την δυνατότητα για κατανόηση, και συχνά αποκαλύπτουν προβλήματα που μπορεί να μην είχαμε παρατηρήσει ή σκεφτεί σε άλλη περίπτωση. Ανάμεσα στους hackers, η φράση "Καλή ερώτηση!" είναι μία έντονη και ειλικρινής φιλοφρόνηση.
Παρ' όλα ταύτα, οι hackers έχουν την φήμη ότι συναντούν τις απλές ερωτήσεις με κάτι που μοιάζει με έχθρα ή υπεροψία. Μερικές φορές φαίνεται σαν να είμαστε ανεξήγητα αναιδείς στους αρχάριους και στους αγνοώντες. Αλλά αυτό δεν είναι στ' αλήθεια σωστό.
Αυτό που είμαστε, χωρίς να χρειάζεται να απολογηθούμε, είναι εχθρικοί στους ανθρώπους που φαίνονται απρόθυμοι να σκεφτούν ή να κάνουν την προεργασία τους πριν να κάνουν ερωτήσεις. Άνθρωποι σαν και αυτούς είναι ρουφήχτρες χρόνου -- λαμβάνουν χωρίς να δίνουν πίσω, και σπαταλούν χρόνο που θα μπορούσαμε να είχαμε ξοδέψει σε κάποια άλλη, πιο ενδιαφέρουσα, ερώτηση και κάποιο άλλο άτομο που να άξιζε περισσότερο μία απάντηση. Αυτούς τους ανθρώπους, τους αποκαλούμε "χαμένους", "losers" (και για ιστορικούς λόγους μερικές φορές το γράφουμε "lusers").
Κατανοούμε ότι υπάρχουν πολλοί άνθρωποι που απλώς θέλουν να χρησιμοποιήσουν το λογισμικό που αναπτύσσουμε, και που δεν βρίσκουν ενδιαφέρον στο να μάθουν τεχνικές λεπτομέρειες. Για τους περισσότερους ανθρώπους, ένας υπολογιστής είναι μόνο ένα εργαλείο, ένα μέσο για ένα σκοπό -- έχουν πιο σημαντικά πράγματα να κάνουν και να ζήσουν τη ζωή τους. Αυτό το αναγνωρίζουμε, και δεν αναμένουμε από τον καθένα να αναπτύξει ενδιαφέρον για τα τεχνικά ζητήματα που μας σαγηνεύουν. Εντούτοις, ο τρόπος με τον οποίο απαντάμε σε ερωτήσεις είναι συντονισμένος για ανθρώπους που έχουν αυτό το ενδιαφέρον και είναι πρόθυμοι να γίνουν ενεργοί συμμετέχοντες στην λύση του προβλήματος. Αυτό δεν πρόκειται να αλλάξει. Και ούτε θά 'πρεπε -- αν άλλαζε, θα γινόμασταν λιγότερο παραγωγικοί σε αυτό που κάνουμε καλύτερα.
Είμαστε (κατά μεγάλο μέρος) εθελοντές. Αφιερώνουμε χρόνο από τις άλλες ασχολίες μας για να απαντήσουμε σε ερωτήσεις, και ορισμένες φορές καταποντιζόμαστε από αυτές. Συνεπώς, φιλτράρουμε δίχως έλεος. Συγκεκριμένα, πετάμε στα σκουπίδια ερωτήσεις από ανθρώπους που φαίνονται να είναι χαμένοι με σκοπό να ξοδέψουμε τον χρόνο προς απάντηση ερωτήσεων πιο αποδοτικά, για τους νικητές.
Αν βρίσκεις τον εαυτό σου αντίθετο με αυτή την συμπεριφορά, αν την θεωρείς μειωτική προς εσένα, ή υπεροπτική, έλεγξε τις εικασίες σου. Δεν σου ζητάμε να υποκλιθείς μπροστά μας -- στην πραγματικότητα, οι περισσότεροι από εμάς δεν θα ήθελαν τίποτε άλλο παρά να σε αντιμετωπίζουν σαν ίσο, και να σε καλωσορίσουν στην κοινότητά μας, αν καταβάλλεις την προσπάθεια που απαιτείται για να γίνει εφικτό. Όμως είναι απλώς μη παραγωγικό για εμάς να προσπαθούμε να βοηθούμε ανθρώπους που δεν είναι πρόθυμοι να βοηθήσουν τον εαυτό τους. Είναι εντάξει να αγνοείς -- δεν είναι εντάξει να το παίζεις χαζός.
Οπότε, ενώ δεν είναι αναγκαίο να είσαι ήδη τεχνικά κατατοπισμένος για να τραβήξεις την προσοχή μας, είναι αναγκαίο να επιδείξεις το είδος της συμπεριφοράς που οδηγεί στην κατατόπιση -- με επαγρύπνηση, σκεπτικότητα, παρατηρητικότητα, προθυμία να είσαι ενεργός συμμετέχοντας στην ανάπτυξη κάποιας λύσης. Αν δεν μπορείς να ζήσεις με αυτό το είδος διακρίσεων, σου προτείνουμε να πληρώσεις κάποιον για ένα εμπορικό συμβόλαιο υποστήριξης αντί να ζητάς από hackers να γίνουν εθελοντές δωρητές του προσωπικού τους χρόνου για να σε βοηθήσουν.
Αν αποφασίσεις να έρθεις σε εμάς για βοήθεια, δεν θέλεις να είσαι ένας από τους χαμένους. Ούτε θες να φαίνεται σαν να ήσουν ένας. Ο καλύτερος τρόπος να λάβεις ταχείες και διαδραστικές απαντήσεις είναι να ρωτήσεις όπως θα έκανε ένα άτομο με εξυπνάδα, αυτοπεποίθηση, και γνώσεις, που απλώς έτυχε να χρειαστεί βοήθεια σχετικά με ένα συγκεκριμένο πρόβλημα.
(Βελτιώσεις για αυτό τον οδηγό είναι ευπρόσδεκτες. Μπορείς να στείλεις προτάσεις στο esr@thyrsus.com ή στο respond-auto@linuxmafia.com. Σημείωσε πάραυτα ότι αυτό το έγγραφο δεν έχει σκοπό να είναι ένας γενικός οδηγός σχετικά με την netiquette, και γενικά θα απορρίψουμε προτάσεις που δεν είναι συγκεκριμένα σχετικές με την απόσπαση χρήσιμων απαντήσεων από ένα τεχνικό forum.)
Πριν κάνεις μία τεχνική ερώτηση μέσω e-mail, ή σε ένα newsgroup, ή σε κάποιο chat στον παγκόσμιο ιστό, κάνε τα ακόλουθα:
Δοκίμασε να βρεις την απάντηση αναζητώντας στο αρχείο παλιών μηνυμάτων του forum στο οποίο σκοπεύεις να γράψεις.
Δοκίμασε να βρεις την απάντηση αναζητώντας στο Διαδίκτυο.
Δοκίμασε να βρεις την απάντηση διαβάζοντας την τεκμηρίωση.
Δοκίμασε να βρεις την απάντηση διαβάζοντας τις Συχνά Υποβαλλόμενες Ερωτήσεις.
Δοκίμασε να βρεις την απάντηση με μελέτη και πειραματισμό.
Δοκίμασε να βρεις την απάντηση ρωτώντας έναν ικανό φίλο σου.
Αν είσαι προγραμματιστής, δοκίμασε να βρεις την απάντηση διαβάζοντας τον πηγαίο κώδικα.
Όταν υποβάλλεις την ερώτησή σου, δείξε το γεγονός ότι έχεις κάνει αυτά τα πράγματα πρώτα -- αυτό θα επιβεβαιώσει ότι δεν είσαι ένας τεμπέλης τσιφούτης που ξοδεύει τον χρόνο των ανθρώπων. Ακόμη καλύτερα, δείξε τι έμαθες κάνοντας αυτά τα πράγματα. Αρεσκόμαστε στο να απαντάμε ερωτήσεις για ανθρώπους που έχουν επιδείξει ότι μπορούν να μάθουν από τις απαντήσεις.
Χρησιμοποίησε τακτικές όπως η αναζήτηση στο Google για το κείμενο από το μήνυμα σφάλματος που λαμβάνεις (αναζητώντας και στις Ομάδες του Google καθώς και σε ιστοσελίδες). Αυτό ίσως σε πάει κατευθείαν στην τεκμηρίωση σχετικά με την διόρθωση ή σε κάποιο μήνυμα ενός mailing list που να απαντάει στην ερώτησή σου. Ακόμη και αν δεν συμβεί κάτι τέτοιο, το να πεις "Έψαξα στο Google για την ακόλουθη φράση αλλά δεν έλαβα τίποτα που να μοιάζει ελπιδοφόρο" είναι ένα καλό πράγμα που μπορείς να κάνεις σε ένα e-mail ή σε ένα μήνυμα ομάδων όταν ζητάς βοήθεια, μόνο και μόνο επειδή καταγράφει ποιες αναζητήσεις δεν βοηθούν.
Χαλαρά. Μην αναμένεις να είσαι σε θέση να λύσεις ένα περίπλοκο πρόβλημα μέσα σε μερικά δευτερόλεπτα αναζητήσεων στο Google. Διάβασε και κατανόησε τις Συχνά Υποβαλλόμενες Ερωτήσεις, κάτσε κάτω, χαλάρωσε και σκέψου το πρόβλημα πριν να προσεγγίσεις τους ειδικούς. Δείξε μας εμπιστοσύνη, θα είναι σε θέση να καταλάβουν από τις ερωτήσεις σου πόσο έχεις διαβάσει και πόσο έχεις σκεφτεί, και θα είναι περισσότερο πρόθυμοι να βοηθήσουν αν φτάσεις προετοιμασμένος. Μην αρχίζεις να πυροβολείς όλο το οπλοστάσιο ερωτήσεων που μπορεί να έχεις μόνο και μόνο επειδή η πρώτη σου αναζήτηση δεν έδωσε αποτελέσματα (ή έδωσε πάρα πολλά).
Προετοίμασε την ερώτησή σου. Σκέψου την καλά. Ερωτήσεις που ακούγονται εσπευσμένες θα λάβουν εσπευσμένες απαντήσεις, ή και καθόλου. Όσο περισσότερα κάνεις για να δείξεις ότι έχεις αφιερώσει σκέψη και προσπάθεια στο να λύσεις το πρόβλημα πριν να ζητήσεις βοήθεια, τόσο περισσότερες πιθανότητες έχεις να λάβεις ουσιαστικά βοήθεια.
Πρόσεξε μην κάνεις την λάθος ερώτηση. Αν ρωτήσεις κάποια που βασίζεται σε λανθασμένες εικασίες, ο Κ. Τυχαίος Hacker πολύ πιθανόν να απαντήσει με μία άχρηστη λογοτεχνική απάντηση καθώς θα σκέφτεται "Χαζή ερώτηση...", και θα ελπίζει ότι η εμπειρία του να μάθεις σχετικά με αυτό που ρώτησες αντί για αυτό που πραγματικά χρειαζόσουν θα σου διδάξει ένα μάθημα.
Ποτέ μην υποθέτεις ότι έχεις δικαίωμα να λάβεις απάντηση. Δεν έχεις -- έτσι κι αλλιώς, δεν πληρώνεις για την υπηρεσία. Θα κερδίσεις μία απάντηση, αν την κερδίσεις, ρωτώντας μία ουσιαστική, ενδιαφέρουσα ερώτηση που προωθεί την σκέψη -- μία που να συμβάλλει έμμεσα στην εμπειρία της κοινότητας αντί μόνο να απαιτεί παθητικά γνώσεις από τους άλλους.
Από την άλλη πλευρά, κάνοντάς το σαφές ότι είσαι ικανός και πρόθυμος να βοηθήσεις στην διαδικασία ανάπτυξης μίας λύσης είναι μία πολύ καλή αρχή. Ερωτήσεις όπως "Μπορεί κάποιος να με καθοδηγήσει;", "Τι λείπει από το παράδειγμά μου;", και "Ποια πηγή θα έπρεπε να είχα ελέγξει;" είναι πιο πιθανό να απαντηθούν από τις "Σε παρακαλώ στείλε μου την ακριβή διαδικασία που θα πρέπει να ακολουθήσω." επειδή το κάνεις ξεκάθαρο ότι είσαι πρόθυμος να ολοκληρώσεις την διαδικασία αν κάποιος μπορεί απλώς να σε καθοδηγήσει προς την σωστή κατεύθυνση.
Να είσαι ευαίσθητος στην επιλογή του τόπου που θα κάνεις την ερώτησή σου. Συνήθως θα σε αγνοήσουν, ή θα σε ξεγράψουν ως χαμένο, αν:
στείλεις την ερώτησή σου σε κάποιο forum που είναι εκτός θέματος
στείλεις την πολύ στοιχειώδη ερώτησή σου σε κάποιο forum όπου αναμένονται προχωρημένες τεχνικές ερωτήσεις, ή το αντίστροφο
στείλεις την ίδια ερώτηση σε υπερβολικά πολλές διαφορετικές ομάδες
στείλεις ένα προσωπικό e-mail σε κάποιον που ούτε γνωρίζεις, ούτε είναι υπεύθυνος προσωπικά για την λύση του προβλήματός σου
Οι hackers σβήνουν ερωτήσεις που είναι λανθασμένα τοποθετημένες, σε μία προσπάθεια να προστατεύσουν τα επικοινωνιακά τους κανάλια από το να βουλιάξουν μέσα στην ασχετοσύνη. Δεν θέλεις να σου συμβεί αυτό.
Το πρώτο βήμα, επομένως, είναι να εντοπίσεις το σωστό forum. Και πάλι, το Google και άλλες μέθοδοι αναζήτησης στο Διαδίκτυο είναι φίλοι σου. Χρησιμοποίησέ τους για να βρεις την σελίδα του project που είναι περισσότερο σχετικό με το υλικό ή το λογισμικό που σε δυσκολεύει. Συνήθως θα έχει links προς μία λίστα από FAQ (Frequently Asked Questions - Συχνά Υποβαλλόμενες Ερωτήσεις), και προς τις mailing lists του project και τα αρχεία τους. Αυτές οι mailing lists είναι το τελικό σημείο όπου θα ζητήσεις βοήθεια, αν οι δικές σου προσπάθειες (συμπεριλαμβανομένης και της ανάγνωσης αυτών των FAQ που βρήκες) δεν σου βρίσκουν μία λύση. Η σελίδα του project ίσως περιγράφει κάποια διαδικασία αναφοράς σφαλμάτων, ή μπορεί να έχει σύνδεσμο προς κάποια. Αν ναι, ακολούθησέ τον.
Το να ρίξεις ένα e-mail σε ένα άτομο ή forum το οποίο δεν γνωρίζεις είναι στην καλύτερη περίπτωση ρίσκο. Για παράδειγμα, μην υποθέτεις ότι ο συγγραφέας μίας σελίδας με χρήσιμες πληροφορίες θέλει να γίνει ο εθελοντής σύμβουλός σου. Μην κάνεις αισιόδοξες προβλέψεις σχετικά με τον αν η ερώτησή σου θα είναι ευπρόσδεκτη -- αν δεν είσαι σίγουρος, στείλ' την αλλού, ή ματαίωσε την αποστολή πλήρως.
Όταν επιλέγεις ένα Διαδικτυακό forum, ομάδα ή mailing list, μην εμπιστεύεσαι το όνομα το ίδιο εκτενώς -- ψάξε για ένα FAQ ή χάρτη για να επιβεβαιώσεις ότι η ερώτησή σου είναι επί του θέματος. Διάβασε κάποια προηγούμενα μηνύματα πριν στείλεις, για να αποκτήσεις μία αίσθηση για το πώς λαμβάνουν χώρα τα πράγματα εκεί. Στην πραγματικότητα, είναι μία πολύ καλή ιδέα να κάνεις μία αναζήτηση με βάση λέξεις-κλειδιά για λέξεις που σχετίζονται με το πρόβλημά σου στην ομάδα ή στο αρχείο της mailing list πριν να ρωτήσεις. Μπορεί να σου βρει μία απάντηση, και αν όχι, θα σε βοηθήσει να διατυπώσεις καλύτερα την ερώτηση.
Μην πολυβολείς όλα τα διαθέσιμα κανάλια βοήθειας με τη μία, αυτό είναι σαν να ουρλιάζεις και ενοχλεί τους ανθρώπους. Πάρ' τα με τη σειρά.
Γνώριζε ποιο είναι το θέμα σου! Ένα από τα κλασσικά λάθη είναι το να κάνεις ερωτήσεις σχετικές με το προγραμματιστικό API σε Unix ή σε Windows σε ένα forum αφιερωμένο σε μία γλώσσα ή βιβλιοθήκη που είναι συμβατή ανάμεσα και στα δύο. Αν δεν καταλαβαίνεις γιατί αυτό είναι πατάτα, καλύτερα να μην κάνεις τίποτε μέχρι να το πιάσεις.
Γενικότερα, ερωτήσεις σε ένα προσεκτικά διαλεγμένο δημόσιο forum είναι περισσότερο πιθανόν να απαντηθούν με χρήσιμες απαντήσεις απ' ότι οι ισοδύναμες ερωτήσεις σε ένα ιδιωτικό. Υπάρχουν πολλαπλοί λόγοι γι' αυτό. Ένας είναι απλά το μέγεθος του σώματος πιθανών ανταποκριτών. Ένας άλλος είναι το μέγεθος του κοινού -- οι hackers προτιμούν να απαντούν σε ερωτήσεις που εκπαιδεύουν πληθώρα ανθρώπων αντί ερωτήσεων που υπηρετούν μόνο λίγους.
Αναμενόμενα, οι ικανοί hackers και οι συγγραφείς δημοφιλούς λογισμικού ήδη λαμβάνουν περισσότερο απ' το δίκαια αναλογούμενο ποσοστό όσων αφορά τον όγκο των λανθασμένα κατατοπισμένων ερωτήσεων. Για να προστεθεί σε αυτή την πλημμύρα, μπορεί σε ειδικές περιπτώσεις να έρθει η δική σου σταγόνα η οποία θα ξεχειλίσει το ποτήρι -- αρκετές φορές, άτομα που είχαν συμβάλλει σε δημοφιλή projects απέσυραν την υποστήριξή τους λόγω παράπλευρων ζημιών σε μορφή άχρηστου όγκου e-mail προς τις προσωπικές τους διευθύνσεις που έγινε αφόρητη.
Η τοπική σου ομάδα χρηστών, ή η διανομή του Linux σου, μπορεί να διαφημίζει ένα forum του Παγκόσμιου Ιστού ή ένα κανάλι στο IRC όπου οι αρχάριοι μπορούν να λάβουν βοήθεια. (Σε μη αγγλόφωνες χώρες, τα forums αρχαρίων είναι πιο πιθανό να είναι mailing lists. [ΣτΜ: Αυτό δεν είναι απαραίτητα αλήθεια. Στην ελληνική κοινότητα ελεύθερου λογισμικού υπάρχουν εξίσου forums, mailing lists, wikis, και κανάλια στο IRC από όπου κάποιος μπορεί να λάβει βοήθεια.]) Αυτά είναι καλά μέρη για να ρωτήσεις, ειδικά αν πιστεύεις ότι έχεις σκοντάψει πάνω σε ένα σχετικά απλό ή συνηθισμένο πρόβλημα. Ένα διαφημιζόμενο κανάλι στο IRC αποτελεί μία ανοιχτή πρόσκληση να κάνεις ερωτήσεις σε αυτό και συχνά να λάβεις απαντήσεις σε πραγματικό χρόνο.
Στην πραγματικότητα, αν έχεις πάρει το πρόγραμμα το οποίο σου δημιουργεί προβλήματα από μία διανομή του Linux (όπως είναι συνηθισμένο σήμερα), ίσως να ήταν καλύτερο να ρωτήσεις στο forum ή στη λίστα της διανομής πριν να δοκιμάσεις το forum ή τη λίστα του project του προγράμματος. Οι hackers του project μπορεί απλώς να πουν "χρησιμοποίησε το δικό μας build".
Πριν να γράψεις σε οποιοδήποτε forum του Παγκόσμιου Ιστού, έλεγξε αν έχει την δυνατότητα Αναζήτησης. Αν ναι, δοκίμασε κάμποσες αναζητήσεις με λέξεις-κλειδιά για κάτι παρόμοιο με το πρόβλημά σου -- μπορεί απλώς να βοηθήσει. Αν έκανες μία αναζήτηση στον Παγκόσμιο Ιστό προηγουμένως (όπως θα άρμοζε), αναζήτησε μέσα στο forum ούτως ή άλλως -- η μηχανή αναζήτησης του Παγκόσμιου Ιστού που χρησιμοποιείς μπορεί να μην έχει όλο το forum απαριθμημένο πρόσφατα.
Υπάρχει μια αυξανόμενη τάση για projects να κάνουν υποστήριξη χρηστών μέσω των forum του Παγκόσμιου Ιστού ή των καναλιών στο IRC, με τα e-mail να δεσμεύονται περισσότερο για όγκο σχετικό με την ανάπτυξη του project. Οπότε ψάξε για αυτά τα κανάλια πρώτα όταν αναζητάς βοήθεια σχετική με ένα συγκεκριμένο project.
Όταν ένα project έχει μία mailing list σχετική με την ανάπτυξη, γράψε προς την mailing list, όχι προς τους μεμονωμένους προγραμματιστές, ακόμη και αν πιστεύεις ότι γνωρίζεις ποιος μπορεί να απαντήσει καλύτερα στην ερώτησή σου. Έλεγξε την τεκμηρίωση του project και την αρχική σελίδα για την διεύθυνση μίας mailing list του project, και χρησιμοποίησέ την. Υπάρχουν πολλαπλοί καλοί λόγοι για αυτή την πολιτική:
Οποιαδήποτε αρκετά καλή ερώτηση για κάποιον προγραμματιστή θα είναι επίσης αξιόλογη σε ολόκληρη την ομάδα. Αντιθέτως, αν υποψιάζεσαι ότι η ερώτησή σου είναι υπερβολικά χαζή για την mailing list, αυτό δεν είναι δικαιολογία για την παρενόχληση ενός μεμονωμένου προγραμματιστή.
Κάνοντας μία ερώτηση στην λίστα διαχωρίζεται ο φόρτος εργασίας ανάμεσα στους προγραμματιστές. Ο μεμονωμένος προγραμματιστής (ειδικά αν είναι ο ηγέτης του project) μπορεί να είναι υπερβολικά απασχολημένος για να απαντήσει στις ερωτήσεις σου.
Οι περισσότερες mailing lists αρχειοθετούνται και τα αρχεία απαριθμούνται από μηχανές αναζήτησης. Αν κάνεις την ερώτησή σου στη λίστα και απαντηθεί, ένας μελλοντικός εξερευνητής μπορεί να βρει την ερώτησή σου και την σχετική απάντηση στον Παγκόσμιο Ιστό αντί να την ξαναρωτήσει.
Αν ορισμένες ερωτήσεις φαίνεται να ρωτώνται συχνά, οι προγραμματιστές μπορούν να χρησιμοποιήσουν αυτού του είδους τις πληροφορίες για να βελτιώσουν την τεκμηρίωση ή το λογισμικό καθεαυτό έτσι ώστε να μην προκαλούν τόση σύγχυση. Αλλά αν αυτές οι ερωτήσεις γίνονται ιδιωτικά, κανένας δεν έχει την πλήρη εικόνα του ποιες ερωτήσεις πραγματοποιούνται πιο συχνά.
Αν ένα project έχει δύο mailing lists ή forums "χρήστη" και "προγραμματιστή" (ή "hacker"), και εσύ δεν κάνεις hacking πάνω στον κώδικα, ρώτα στο forum ή στη λίστα "χρήστη". Μην υποθέτεις ότι θα είσαι ευπρόσδεκτος στην λίστα των προγραμματιστών, όπου πιθανότητα θα βιώσουν την ερώτησή σου ως θόρυβο ανάμεσα στον όγκο δεδομένων σχετικά με την ανάπτυξη του προγράμματος.
Εντούτοις, αν είσαι σίγουρος ότι η ερώτησή σου είναι μη τετριμμένη, και δεν λαμβάνεις κάποια απάντηση στην λίστα/forum "χρήστη" για πολλαπλές ημέρες, δοκίμασε αυτή του "προγραμματιστή". Θα σας προτείναμε ανεπιφύλακτα να γλυστρήσετε αθόρυβα εκεί μέσα για μερικές ημέρες πριν να αποστείλετε κάτι για να γνωρίσετε τα τοπικά ήθη και έθιμα (στην πραγματικότητα αυτή είναι μία καλή συμβουλή για οποιαδήποτε ιδιωτική ή ημι-ιδιωτική λίστα).
Αν δεν μπορείς να βρεις την διεύθυνση μίας mailing list του project, αλλά βλέπεις μόνο την διεύθυνση του διαχειριστή του project, προχώρα και γράψε στον διαχειριστή. Αλλά ακόμη και σε αυτή την περίπτωση, μην υποθέτεις ότι η mailing list δεν υπάρχει. Ανέφερε στο e-mail σου ότι δοκίμασες και δεν μπόρεσες να βρεις την κατάλληλη mailing list. Επίσης ανέφερε ότι δεν έχεις αντίρρηση με το να προωθηθεί το μήνυμά σου σε άλλους ανθρώπους. (Πολλοί άνθρωποι πιστεύουν ότι ένα ιδιωτικό e-mail πρέπει να παραμένει ιδιωτικό, ακόμη και αν δεν υπάρχει τίποτα μυστικό μέσα του. Επιτρέποντας την προώθηση του μηνύματός σου δίνεις στον συνομιλητή σου μία επιλογή σχετικά με τον χειρισμό του e-mail σου.)
Στις mailing lists, τις ομάδες ή στα forums του Παγκόσμιου Ιστού, η επικεφαλίδα θέματος είναι η χρυσή σου ευκαιρία να προσελκύσεις ειδικούς με τα κατάλληλα προσόντα σε 50 ή λιγότερους χαρακτήρες. Μην τους ξοδεύεις φλυαρώντας όπως στο "Βοηθήστε με" (ας μην μιλήσουμε για το "ΒΟΗΘΗΣΤΕ ΜΕ!!!!" -- μηνύματα με θέματα όπως αυτό αγνοούνται αυθόρμητα). Μην προσπαθείς να μας εντυπωσιάσεις με την βαθύτητα της αγωνίας σου -- χρησιμοποίησε το χώρο για μία υπερ-συνοπτική περιγραφή του προβλήματος αντ' αυτού.
Μία καλή σύμβαση για τις επικεφαλίδες θέματος που χρησιμοποιείται από πολλές οργανώσεις τεχνικής υποστήριξης είναι η "αντικείμενο - απόκλιση". Το μέρος "αντικείμενο" ορίζει ποιο πράγμα ή ποια ομάδα πραγμάτων αντιμετωπίζει πρόβλημα, και το μέρος "απόκλιση" περιγράφει την απόκλιση από την αναμενόμενη συμπεριφορά.
ΒΟΗΘΕΙΑ! Τα γραφικά δεν δουλεύουν σωστά στον φορητό μου!
X.org 6.8.1 κέρσορας ποντικιού παραμορφωμένος, Κοκοware MV1005 vid. chipset
X.org 6.8.1 κέρσορας ποντικιού σε Κοκοware MV1005 vid. chipset - είναι παραμορφωμένος
Η διαδικασία του να γράψεις μία περιγραφή τύπου "αντικείμενο-απόκλιση" θα σε βοηθήσει να οργανώσεις τον τρόπο σκέψης σου σχετικά με το πρόβλημα πιο λεπτομερώς. Τι επηρεάζεται; Μόνο ο κέρσορας του ποντικιού ή και άλλα γραφικά επίσης; Συμβαίνει συγκεκριμένα στην X.org έκδοση του X; Στην έκδοση 6.8.1; Συμβαίνει συγκεκριμένα στα chipsets κάρτας γραφικών Κοκοware; Στο μοντέλο MV1005? Ένας hacker που βλέπει το αποτέλεσμα μπορεί αμέσως να καταλάβει τι είναι αυτό με το οποίο έχεις πρόβλημα και το πρόβλημα το οποίο έχεις, με μια ματιά.
Γενικότερα, φαντάσου να κοιτάς μία απαρίθμηση από ερωτήσεις, με μόνο την γραμμή θέματος να εμφανίζεται. Κάνε την γραμμή θέματος να αντικατοπτρίζει αρκετά καλώς την ερώτησή σου ώστε ο επόμενος τύπος που θα αναζητά το αρχείο για μία ερώτηση παρόμοια με την δική σου να μπορεί να ακολουθήσει το thread για να φτάσει σε μία απάντηση αντί να στείλει την ερώτηση ξανά.
Αν κάνεις μία ερώτηση εντός μίας απάντησης, σιγουρέψου ότι αλλάζεις την γραμμή θέματος για να επισημάνεις ότι κάνεις μία ερώτηση. Μία γραμμή Θέματος που είναι σαν το "Re: δοκιμή" ή "Re: νέο σφάλμα" έχει μικρότερες πιθανότητες να προσελκύσει αρκετή προσοχή ώστε να φανεί χρήσιμη. Επιπλέον, ξεκαθάρισε τα αποσπάσματα παλιών μηνυμάτων στο ελάχιστο δυνατό που να βγάζει νόημα αρκετό για να δώσεις ενδείξεις στους νέους αναγνώστες.
Μην πατάς απλώς απάντηση σε ένα μήνυμα λίστας για να αρχίσεις ένα εντελώς καινούργιο thread. Αυτό θα περιορίσει το κοινό σου. Κάποια προγράμματα ανάγνωσης αλληλογραφίας, όπως το mutt, επιτρέπουν στο χρήστη να ταξινομήσει με βάση το thread και στη συνέχεια να αποκρύψει μηνύματα εντός του thread χρησιμοποιώντας αναδίπλωση. Οι τυπάδες που το κάνουν αυτό δεν θα δουν ποτέ το μήνυμά σου.
Το να αλλάξεις το θέμα δεν επαρκεί. Το Mutt, και πιθανώς και άλλα προγράμματα ανάγνωσης αλληλογραφίας, κοιτάει και για άλλες πληροφορίες στις κεφαλίδες του e-mail για να το εντάξει σε ένα thread, όχι την γραμμή θέματος. Αντ' αυτού, ξεκίνα ένα παντελώς νέο e-mail.
Στα forums του Παγκόσμιου Ιστού, οι κανόνες καλής πρακτικής είναι ελαφρώς διαφορετικοί, επειδή τα μηνύματα είναι συνήθως πολύ περισσότερο σφιχτά συνδεδεμένα με συγκεκριμένα threads συζητήσεων και συχνά αόρατα έξω από αυτά τα threads. Το να αλλάζεις το θέμα όταν κάνεις μία ερώτηση μέσα σε μία ανταπόκριση δεν είναι απαραίτητο. Κάποια forums ούτε καν επιτρέπουν διαφοροποιημένη γραμμή θέματος στις απαντήσεις, και σχεδόν κανείς δεν τις διαβάζει ακόμη και όταν επιτρέπεται. Παρ' όλα αυτά, το να κάνεις μία ερώτηση μέσα σε μία ανταπόκριση είναι μία αμφισβητήσιμη πρακτική καθεαυτή, επειδή θα το δούν μόνο όσοι παρακολουθούν αυτό το thread. Έτσι, εκτός και αν είσαι σίγουρος ότι θέλεις να ρωτήσεις μόνο τους ανθρώπους που είναι επί του παρόντος ενεργοί στο thread, ξεκίνα ένα νέο.
Το να ολοκληρώνεις το ερώτημά σου με "Παρακαλώ στείλε την απάντησή σου στο..." το κάνει αρκετά απίθανο να λάβεις απάντηση. Αν εσύ δεν μπορείς να μπεις στον κόπο να αφιερώσεις έστω και τα λίγα δευτερόλεπτα που απαιτούνται για να ορίσεις μία σωστή κεφαλίδα Reply-To στο πρόγραμμα αλληλογραφίας σου, εμείς δεν μπορούμε να μπούμε στον κόπο να αφιερώσουμε ούτε λίγα δευτερόλεπτα για να σκεφτούμε για το πρόβλημά σου. Αν το πρόγραμμα αλληλογραφίας σου δεν το επιτρέπει αυτό, βρες ένα καλύτερο πρόγραμμα αλληλογραφίας. Αν το λειτουργικό σου σύστημα δεν υποστηρίζει κανένα πρόγραμμα αλληλογραφίας που να επιτρέπει κάτι τέτοιο, βρες ένα καλύτερο λειτουργικό σύστημα.
Στα forums του Παγκόσμιου Ιστού, το να ζητάς μία απάντηση μέσω e-mail είναι παντελώς αγενές, εκτός και αν πιστεύεις ότι οι πληροφορίες μπορεί να είναι ευαίσθητες (και κάποιος πρόκειται, για κάποιον άγνωστο λόγο, να το πει σε εσένα αλλά όχι σε ολόκληρο το forum). Αν επιθυμείς ένα αντίγραφο e-mail όταν κάποιος απαντάει στο thread, ζήτησε να σου το στείλει το forum του Παγκόσμιου Ιστού -- αυτό το χαρακτηριστικό υποστηρίζεται σχεδόν παντού κάτω από ρυθμίσεις όπως "παρακολούθηση αυτής της συζήτησης", "στείλε e-mail όταν απαντηθεί", κλπ.
Ανακαλύψαμε μέσα από την εμπειρία ότι οι άνθρωποι που είναι απρόσεκτοι και τσαπατσούληδες στη συγγραφή είναι συνήθως επίσης απρόσεκτοι και τσαπατσούληδες όταν σκέφτονται και όταν γράφουν κώδικα (αρκετά συχνά τέλος πάντων για να μπορεί κανείς να στοιχηματίζει σε κάτι τέτοιο). Το να απαντάμε σε ερωτήσεις για ανθρώπους που σκέφτονται με απρόσεκτο και τσαπατσούλικο τρόπο δεν μας επιβραβεύει -- θα προτιμούσαμε να ξοδεύουμε τον χρόνο μας αλλού.
Έτσι το να εκφράζεις την ερώτησή σου ξεκάθαρα και καλά είναι σημαντικό. Αν δεν μπορείς να μπεις στον κόπο να το κάνεις, εμείς δεν μπορούμε να μπούμε στον κόπο να δώσουμε προσοχή. Κατέβαλλε την επιπλέον προσπάθεια για να διανθίσεις τον λόγο σου. Δεν χρειάζεται να είναι στυφός ή επίσημος -- στην πραγματικότητα, η κουλτούρα των hacker εκτιμά την ανεπίσημο και χιουμοριστική αργκό λόγο όταν χρησιμοποιείται με ακρίβεια. Αλλά πρέπει να είναι ακριβής -- πρέπει να υπάρχει κάποια ένδειξη ότι σκέφτεσαι και ότι προσέχεις.
Να είσαι ορθογραφημένος και να χρησιμοποιείς την στίξη και την εναλλαγή πεζών-κεφαλαίων με σωστό τρόπο [ΣτΜ: Μην χρησιμοποιείς greeklish αν η τεχνολογία σου το επιτρέπει!]. Μην μπερδεύεις το "φύλο" με το "φίλο", την "θνησιμότητα" με την "θνητότητα", ή το "κυκλοφορικό" με το "κυκλοφοριακό". Μην ΓΡΑΦΕΙΣ ΑΠΟΚΛΕΙΣΤΙΚΑ ΜΕ ΚΕΦΑΛΑΙΑ -- διαβάζεται σαν να ουρλιάζεις και θεωρείται αγένεια. (Τα αποκλειστικά-πεζά είναι μόνο ελαφρώς λιγότερο ενοχλητικά, καθώς είναι δύσκολο να διαβαστούν. Ο Alan Cox μπορεί να την βγάλει καθαρή, αλλά εσύ όχι.)
Γενικότερα, αν γράφεις σαν να είσαι ένας αμόρφωτος βλάκας το πιο πιθανό είναι να αγνοηθείς. Οπότε μην χρησιμοποιείς τις συντομογραφίες του instant-messaging. Το να γράφεις το "που" ως "π" σε κάνει να φαίνεσαι σαν ένας αμόρφωτος βλάκας μόνο και μόνο για να σωθείς από το να πληκτρολογήσεις δύο επιπλέον γράμματα. Χειρότερο: το να γράφεις σΑν εΝα χΑζΟ πΑιΔαΚι πΟυ νΟμιζΕι οΤι κΑτΙ κΑνΕι είναι το απόλυτο φιλί της προδοσίας και σου εγγυάται ότι δεν θα λάβεις τίποτα πέραν νεκρικής σιωπής (ή, στην καλύτερη περίπτωση, μία αρλούμπα από κοσμητικά επίθετα και ειρωνεία) για αντάλλαγμα.
Αν κάνεις ερωτήσεις σε ένα forum που δεν χρησιμοποιεί την μητρική σου γλώσσα, θα λάβεις ένα πιο περιορισμένο όγκο παραπόνων για ορθογραφικά και γραμματικά λάθη -- αλλά δεν θα λάβεις επιπλέον παράπονα για τεμπελιά (και ναι, συνήθως μπορούμε να καταλάβουμε τη διαφορά). Ακόμη, εκτός και αν ξέρεις τις γλώσσες του συνομιλητή σου, γράφε στα Αγγλικά. Οι απασχολημένοι hackers τείνουν να διαγράφουν τις ερωτήσεις σε γλώσσες που δεν καταλαβαίνουν, και τα Αγγλικά είναι η λειτουργική γλώσσα του Διαδικτύου. Με το να γράφεις στα Αγγλικά, ελαχιστοποιείς τις πιθανότητες οι ερωτήσεις σου να πεταχτούν στα σκουπίδια αδιάβαστες.
Αν φτιάξεις την ερώτησή σου τεχνικά δύσκολο να διαβαστεί, είναι πιθανό να προσπεραστεί προς χάριν κάποιας που δεν είναι. Έτσι:
Να στέλνεις mail σε απλό κείμενο, όχι HTML. (Δεν είναι δύσκολο να απενεργοποιήσεις το HTML.)
Τα συνημμένα MIME αρχεία είναι συνήθως εντάξει, αλλά μόνο αν αποτελούν ουσιαστικό περιεχόμενο (όπως ένα συνημμένο αρχείο κώδικα ή ένα patch), και όχι σάλτσα που δημιούργησε το πρόγραμμα αλληλογραφίας σου (όπως ένα επιπλέον αντίγραφο του μηνύματός σου).
Μην στέλνεις e-mail στα οποία ολόκληρες παράγραφοι αποτελούνται από μία και μοναδική αναδιπλωμένη γραμμή. (Το κάνει υπερβολικά δύσκολο να απαντήσει κανείς σε ένα μόνο τμήμα του μηνύματος.) Υπέθεσε ότι οι αναγνώστες σου θα διαβάζουν το mail σε οθόνες που χωρούν 80 χαρακτήρες κειμένου και όρισε την αναδίπλωση κειμένου σου αναλόγως, σε κάτι μικρότερο του 80.
Εντούτοις, μην αναδιπλώνεις δεδομένα (όπως αρχεία logs dumps ή μεταγραφές συνόδων) σε κανένα σταθερό μήκος στήλης. Τα δεδομένα πρέπει να εμπεριέχονται αυτούσια, έτσι ώστε οι συνομιλητές να έχουν την εγγύηση ότι βλέπουν αυτά που είδες.
Μην στέλνεις σε κωδικοποίηση MIME Quoted-Printable προς κάποιο forum Αγγλικής γλώσσας. Αυτή η κωδικοποίηση μπορεί να είναι απαραίτητη όταν γράφεις σε κάποια γλώσσα που δεν καλύπτει το ASCII, αλλά πολλά προγράμματα αλληλογραφίας δεν το υποστηρίζουν. Όταν χαλάνε, όλα αυτά τα =20 ιερογλυφικά που είναι διασκορπισμένα μέσα στο κείμενο είναι άσχημα και αποσπούν την προσοχή -- ή μπορεί να υπονομεύσουν ενεργά την σημασιολογία του κειμένου σου.
Ποτέ, μα ποτέ μην περιμένεις από τους hackers να έχουν την δυνατότητα να διαβάσουν κλειστές ιδιόκτητες μορφές εγγράφων όπως το Microsoft Word ή το Excel. Οι περισσότεροι hackers αντιδρούν σε αυτά περίπου όσο καλά όσο θα αντιδρούσες αν σου έριχναν ένα φορτηγό από αχνιστή χοιρινή κοπριά μπροστά από την εξώπορτά σου. Ακόμη και όταν μπορούν να συνεργαστούν, αγανακτούν με το ότι πρέπει να το κάνουν.
Αν στέλνεις ένα e-mail από ένα μηχάνημα με Windows, απενεργοποίησε το ηλίθιο χαρακτηριστικό των "Smart Quotes" της Microsoft. Κάν' το έτσι ώστε να αποτρέψεις άχρηστους χαρακτήρες από το να αναπηδούν μέσα στο mail σου.
Στα forums του Παγκόσμιου Ιστού, μην καταχράσαι τις δυνατότητες για "smiley" και για "HTML" (όταν υπάρχουν). Ένα χαμογελάκι ή και δύο είναι συνήθως εντάξει, αλλά το χρωματιστό φανταχτερό κείμενο κάνει τους άλλους να σκέφτονται πως είσαι μπούφος. Σοβαρά, το να χρησιμοποιείς υπερβολικά smileys και χρώμα και γραμματοσειρές θα σε κάνει να φαίνεσαι σαν μία χαζοχαρούμενη έφηβη κοπελίτσα, που γενικά δεν είναι μία καλή ιδέα εκτός αν σε ενδιαφέρουν περισσότερο απαντήσεις σχετικά με το sex.
Αν χρησιμοποιείς ένα πρόγραμμα αλληλογραφίας με γραφικό περιβάλλον όπως το Netscape Messenger, το MS Outlook, ή τα συναφή, πρόσεξε ότι μπορεί παραβαίνει αυτούς τους κανόνες όταν χρησιμοποιείται με τις προεπιλεγμένες του ρυθμίσεις. Πολλά τέτοια προγράμματα έχουν κάποια εντολή "Προβολή Πηγαίου Κώδικα". Χρησιμοποίησέ το πάνω σε κάτι στον φάκελο απεσταλμένα, επιβεβαιώνοντας ότι στέλνει το σκέτο κείμενο χωρίς άχρηστες σάλτσες.
Περιέγραψε τα συμπτώματα του προβλήματός ή του σφάλματός σου προσεκτικά και ξεκάθαρα.
Περιέγραψε το περιβάλλον μέσα στο οποίο συμβαίνει (μηχάνημα, Λειτουργικό Σύστημα, εφαρμογή, οτιδήποτε). Να παρέχεις την διανομή του προμηθευτή σου καθώς και το επίπεδο έκδοσης (π.χ.: "Fedora Core 4", "Slackware 9.1", κλπ.).
Περιέγραψε την έρευνα που έκανες για να προσπαθήσεις να κατανοήσεις το πρόβλημα πριν να κάνεις την ερώτηση.
Περιέγραψε τα διαγνωστικά βήματα που έλαβες μόνος σου για να προσπαθήσεις να απομονώσεις το πρόβλημα πριν να κάνεις την ερώτηση.
Περιέγραψε οποιεσδήποτε πιθανές αλλαγές στον υπολογιστή σου ή στις ρυθμίσεις του λογισμικού σου.
Κάνε ό,τι καλύτερο μπορείς για να προβλέπεις τις ερωτήσεις που θα κάνει ένας hacker, και απάντησέ τις εκ των προτέρων στην αίτησή σου για βοήθεια.
Ο Simon Tatham έχει γράψει ένα εξαιρετικό δοκίμιο επονομαζόμενο How to Report Bugs Effectively. Σου συστήνω ανεπιφύλακτα να το διαβάσεις.
Πρέπει να είσαι ακριβής και περιγραφικός. Αυτό δεν επιτυγχάνεται απλώς με το να ρίξεις τεράστιες ποσότητες κώδικα ή δεδομένων σε μία αίτηση για βοήθεια. Αν έχεις έναν μεγάλο και περίπλοκο τρόπο που κρασάρει κάποιο πρόγραμμα, προσπάθησε να τον περικόψεις και να τον κάνεις όσο το δυνατόν συντομότερο.
Αυτό είναι χρήσιμο για τουλάχιστον τρεις λόγους. Πρώτον: το να είναι φανερό πως επενδύεις κόπο στο να απλοποιήσεις την ερώτηση το κάνει πιθανότερο να λάβεις απάντηση, Δεύτερον: το να απλοποιήσεις την ερώτηση το κάνει πιθανότερο να λάβεις μία χρήσιμη απάντηση. Τρίτον: Κατά την διάρκεια του ξεκαθαρισμού της αναφοράς σφάλματός σου, μπορεί να αναπτύξεις έναν τρόπο διόρθωσης ή κάποιον τρόπο να αποφύγεις το πρόβλημα ο ίδιος.
Όταν έχεις προβλήματα με ένα λογισμικό, μην υποστηρίζεις ότι έχεις βρει ένα σφάλμα εκτός και αν είσαι πάρα πολύ σίγουρος για το πού βαδίζεις. Συμβουλή: εκτός και αν μπορείς να προμηθεύσεις ένα patch πηγαίου κώδικα που διορθώνει το πρόβλημα, ή μία δοκιμή πάνω σε μία προηγούμενη έκδοση η οποία να επιδεικνύει ότι υπάρχει λανθασμένη συμπεριφορά, κατά πάσα πιθανότητα δεν είσαι αρκετά σίγουρος. Αυτό εφαρμόζεται και στις ιστοσελίδες και στην τεκμηρίωση, επίσης -- αν έχεις βρει ένα "σφάλμα" στην τεκμηρίωση, πρέπει να προμηθεύσεις ένα κείμενο για να αντικαταστήσει το παλιό και τις σελίδες στις οποίες θα έπρεπε να μπει.
Θυμήσου, υπάρχουν πολλοί άλλοι χρήστες που δεν αντιμετωπίζουν το πρόβλημά σου. Αλλιώς θα το μάθαινες όταν θα διάβαζες την τεκμηρίωση ή όταν θα έψαχνες το Διαδίκτυο (το έκανες αυτό πριν παραπονεθείς, έτσι δεν είναι;). Αυτό σημαίνει ότι πολύ πιθανόν να κάνεις εσύ κάτι λάθος, όχι το λογισμικό.
Οι άνθρωποι που αναπτύσσουν το λογισμικό δουλεύουν πολύ σκληρά για να το κάνουν να δουλεύει όσο καλύτερα γίνεται. Αν υποστηρίξεις ότι βρήκες κάποιο σφάλμα, θα αμφισβητήσεις την εμπιστοσύνη τους, κάτι που μπορεί να προσβάλλει κάποιους από αυτούς ακόμη και αν έχεις δίκιο. Είναι ειδικά μη διπλωματικό να φωνάζεις "σφάλμα" στην γραμμή Θέματος.
Όταν κάνεις την ερώτησή σου, είναι καλύτερο να γράφεις σαν να υποθέτεις ότι εσύ κάνεις κάτι λάθος, ακόμη και αν προσωπικά είσαι αρκετά σίγουρος ότι έχεις βρει ένα ουσιαστικό σφάλμα. Αν στ' αλήθεια είναι σφάλμα, θα το ακούσεις στην απάντηση. Παίξε το παιχνίδι έτσι ώστε οι διαχειριστές να θέλουν να σου απολογηθούν αν το σφάλμα είναι αληθινό, αντί να τους χρωστάς μία συγγνώμη αν τα έκανες σαλάτα.
Κάποιοι άνθρωποι που καταλαβαίνουν ότι δεν πρέπει να συμπεριφέρονται με αγένεια ή αλαζονικά, απαιτώντας μία απάντηση, κουρνιάζουν στο αντίθετο άκρο, αυτό της υποβολής. "Το ξέρω πως είμαι ένας αξιοθρήνητος αρχάριος και άχρηστος, αλλά...". Αυτό αποσπά την προσοχή και δεν βοηθά. Είναι ειδικά ενοχλητικό όταν συνοδεύεται από ασάφεια σχετικά με το ουσιαστικό πρόβλημα.
Μην σπαταλάς τον χρόνο σου, ή τον δικό μας, με λόγια αρχιεπισκοπικού κηρύγματος. Αντιθέτως, παρουσίασε τα σχετιζόμενα γεγονότα και την ερώτησή σου όσο πιο ξεκάθαρα μπορείς. Αυτός είναι ένας καλύτερος τρόπος να τοποθετήσεις τον εαυτό σου από το να προσκυνήσεις υποβάλλοντας τα σέβη σου.
Μερικές φορές τα forums του Παγκόσμιου Ιστού έχουν ξεχωριστά μέρη για τις ερωτήσεις των αρχάριων. Αν νιώθεις πως έχεις μία αρχάρια ερώτηση, απλώς πήγαινε εκεί. Αλλά μην υποβάλλεσαι ούτε κι εκεί.
Δεν χρησιμεύει να πεις στους hackers τι νομίζεις ότι προκαλεί το πρόβλημά σου. (Αν οι διαγνωστικές σου θεωρίες ήταν τόσο ουσιώδεις, θα συμβουλευόσουν άλλους για βοήθεια;) Έτσι λοιπόν, σιγουρέψου πως τους λες χύμα τα συμπτώματα του τι πάει στραβά, αντί για τις διερμηνείες και θεωρίες σου. Άσ' τους να κάνουν τις διερμηνείες και την διάγνωση. Αν νιώθεις πως είναι σημαντικό να αναφέρεις την εικασία σου, κατηγοριοποίησέ την ξεκάθαρα ως τέτοια και περιέγραψε γιατί αυτή η απάντηση δεν σου δουλεύει.
Λαμβάνω συνεχόμενα σφάλματα SIG11 όταν μεταγλωττίζεται ο πυρήνας, και υποθέτω πως υπάρχει μία ελάχιστη ρωγμή πάνω σε κάποιο ίχνος της μητρικής. Ποιος είναι ο καλύτερος τρόπος να ελέγξω για κάτι τέτοιο;
Ο υπολογιστής K6/233 που έφτιαξα μόνος μου με μία μητρική FIC-PA2007 (με chipset VIA Apollo VP2) και 256MB Corsair PC133 SDRAM αρχίζει να λαμβάνει συχνά σφάλματα SIG11 περίπου 20 λεπτά αφού ανοίξω τον υπολογιστή κατά την διάρκεια της μεταγλώττισης του πυρήνα, αλλά ποτέ μέσα στα πρώτα 20 λεπτά. Η επανεκκίνηση δεν βοηθάει, μόνο αν κλείσω τον υπολογιστή την νύχτα. Δοκίμασα να αλλάξω τις RAM αλλά δεν βοήθησε. Ακολουθεί το σχετιζόμενο τμήμα από το log της μεταγλώττισης.
Καθώς το προαναφερθέν είναι δύσκολο να το πιάσουν πολλοί άνθρωποι, να μία φράση για να σου το θυμίζει: "Όλες οι ειδικοί στις διαγνώσεις είναι από το Missouri." Το σύνθημα αυτής της πολιτείας της Αμερικής είναι "δείξε μου" (το οποίο κατέκτησε το 1899, όταν Willard D. Vandiver από το Κογκρέσο είπε "Κατάγομαι από μία πολιτεία που καλλιεργεί σιτάρι και βαμβάκι και Δημοκρατικούς, και τα καταδιωκτικά παιχνιδάκια ούτε με πείθουν, ούτε με ικανοποιούν. Είμαι από το Missouri. Εσύ δείξε μου.") Στην περίπτωση των ειδικών στις διαγνώσεις, αυτό δεν αφορά κάποιου είδους σκεπτικισμό, αλλά μία κυριολεκτική, χρηστική ανάγκη να δούμε οτιδήποτε είναι όσο το δυνατόν πιο κοντά στις ίδιες ακατέργαστες ενδείξεις που βλέπεις κι εσύ, αντί για τις εικασίες και τις συνόψεις σου. Δείξε μας.
Τα ίχνη που είναι χρήσιμα στο να βγάλει κανείς άκρη με το τι πήγε στραβά συχνά βρίσκονται στα γεγονότα που συνέβησαν αμέσως πιο πριν. Έτσι, ο απολογισμός σου θα πρέπει να περιγράφει επακριβώς τι έκανες, και τι έκανε το μηχάνημά σου, που οδήγησε στην έκρηξη. Στην περίπτωση διαδικασιών κονσόλας, το να έχεις ένα log της συνόδου (λ.χ., χρησιμοποιώντας το αντίστοιχο script εργαλείο) και να δείχνεις ένα απόσπασμα από είκοσι ή κάπου εκεί σχετικές γραμμές είναι πολύ χρήσιμο.
Αν το πρόγραμμα που σου κράσαρε έχει διαγνωστικές ρυθμίσεις (όπως -v για verbose), προσπάθησε να επιλέξεις ρυθμίσεις που θα προσθέσουν χρήσιμες πληροφορίες αποσφαλμάτωσης στην καταγραφή. Να θυμάσαι ότι περισσότερα δεν είναι απαραίτητα καλύτερα -- προσπάθησε να διαλέξεις ένα επίπεδο αποσφαλμάτωσης που να ενημερώνει τον αναγνώστη αντί να τον πνίγει στο σκουπίδι.
Αν ο απολογισμός τελικά καταλήξει να είναι μακρύς (περισσότερο από περίπου τέσσερις παραγράφους), μπορεί να φανεί χρήσιμο να αναφέρεις περιληπτικά το πρόβλημα στην αρχή, και να συνεχίσεις με την ιστορία σε χρονολογική σειρά. Με αυτό τον τρόπο, οι hackers θα ξέρουν τι να παρακολουθήσουν όταν διαβάζουν τον απολογισμό σου.
Αν προσπαθείς να βρεις πώς να κάνεις κάτι (αντί να αναφέρεις κάποιο σφάλμα), άρχισε περιγράφοντας το σκοπό σου. Μόνο στη συνέχεια περιέγραψε το συγκεκριμένο βήμα που έλαβες στο οποίο κωλύεσαι.
Συχνά, οι άνθρωποι που χρειάζονται τεχνική βοήθεια έχουν ένα στόχο υψηλού επιπέδου στο νου τους και κολλάνε σε κάτι που θεωρούν ότι είναι ένα συγκεκριμένο βήμα κοντινότερα στο στόχο. Έρχονται για βοήθεια σχετικά με το βήμα, αλλά δεν κατανοούν ότι το μονοπάτι είναι λανθασμένο. Μπορεί να χρειαστεί αξιόλογη προσπάθεια για να ξεπεραστεί αυτό.
Πώς κάνω τον επιλογέα χρωμάτων στο πρόγραμμα ΚοκοΣχεδίαση να πάρει μία δεκαεξαδική τιμή RGB;
Προσπαθώ να αντικαταστήσω τον πίνακα χρωμάτων σε μία εικόνα χρησιμοποιώντας τιμές τις επιλογής μου. Αυτή τη στιγμή ο μόνος τρόπος με τον οποίο θεωρώ ότι μπορώ να το κάνω είναι με το να αλλάξω κάθε στοιχείο του πίνακα, αλλά δεν μπορώ να κάνω τον επιλογέα χρωμάτων του ΚοκοΣχεδίαση να πάρει μία δεκαεξαδική RGB τιμή.
Η δεύτερη έκδοση της ερώτησης είναι έξυπνη. Επιτρέπει μία απάντηση που να προτείνει ένα εργαλείο που να ταιριάζει καλύτερα για τη εργασία.
Οι hackers πιστεύουν ότι το να λύνει κανείς προβλήματα πρέπει να είναι μία δημόσια, διαφανής διαδικασία κατά την οποία μία πρώτη απόπειρα για απάντηση μπορεί και θα πρέπει να διορθώνεται αν κάποιος πιο σοφός παρατηρεί ότι είναι ατελής ή εσφαλμένη. Επιπλέον, τα άτομα που βοηθάνε λαμβάνουν κάποια ανταμοιβή από το να απαντούν, όταν οι συνάδελφοί τους βλέπουν ότι είναι καταρτισμένοι και γνώστες.
Όταν ζητάς μία προσωπική απάντηση, αναστατώνεις τόσο την διαδικασία όσο και την ανταμοιβή. Μην το κάνεις. Είναι η επιλογή του ατόμου που σε βοηθάει να απαντήσει ιδιωτικά -- και όταν το κάνει, συνήθως πιστεύει ότι η ερώτηση είναι υπερβολικά κακογραμμένη ή προφανής για να είναι ενδιαφέρουσα για τους υπόλοιπους.
Υπάρχει μία περιορισμένη εξαίρεση σε αυτό τον κανονισμό. Αν θεωρείς πως η ερώητησή σου είναι τέτοια ώστε είναι πιθανόν να λάβεις πολλές απαντήσεις που είναι στενά συνδεδεμένες μεταξύ τους, τότε η μαγική φράση είναι "στείλτε μου e-mail και θα συνοψίσω τις απαντήσεις για την ομάδα". Είναι ιπποτικό να προσπαθείς να σώσεις την mailing list ή την ομάδα από μία πλημμύρα από ουσιαστικά πανομοιότυπες αναρτήσεις -- αλλά πρέπει να κρατήσεις την υπόσχεσή σου να συνοψίσεις.
Οι ανοιχτές ερωτήσεις τείνουν να προσλαμβάνονται ως ανοιχτές ρουφήχτρες ελεύθερου χρόνου. Οι άνθρωποι που πιθανότατα μπορούν να σου δώσουν μία χρήσιμη απάντηση είναι επίσης και οι πιο απασχολημένοι (αν μη τι άλλο επειδή αναλαμβάνουν τον μεγαλύτερο φόρτο εργασίας οι ίδιοι). Άνθρωποι σαν και αυτούς είναι αλλεργικοί στις ανοιχτές ρουφήχτρες ελεύθερου χρόνου, και συνεπώς τείνουν να είναι αλλεργικοί στις ανοιχτές ερωτήσεις.
Είναι πιθανότερο να λάβεις χρήσιμες απαντήσεις αν είσαι ρητός σχετικά με το τι ζητάς από τους συνομιλητές να κάνουν (προμήθευσέ τους με συνδέσμους, στείλε κώδικα, έλεγξε το patch σου, οτιδήποτε). Αυτό θα εστιάσει την προσπάθειά τους και θα θέσει έμμεσα ένα άνω όριο στον χρόνο και στην ενέργεια κάποιος που θα απαντήσει πρέπει να διαθέσει για να σε βοηθήσει. Είναι καλό.
Για να κατανοήσεις τον κόσμο στο οποίο ζουν οι ειδικοί, θεώρησε την ειδικότητα ως έναν άφθονο πόρο και τον χρόνο για απαντήσεις ως έναν περιορισμένο. Όσο λιγότερο χρόνο ζητάς να σου αφιερώσουν, τόσο πιο πιθανό είναι να λάβεις μία απάντηση από κάποιον πραγματικά καλό και πραγματικά απασχολημένο.
Έτσι είναι χρήσιμο να πλαισιώνεις την ερώτησή σου για να ελαχιστοποιείς την χρονική υποχρέωση που απαιτείται για έναν ειδικό να την απαντήσει -- αλλά αυτό δεν είναι πάντα το ίδιο με το να απλοποιείς την ερώτηση. Δηλαδή, για παράδειγμα, "Θα μου δείξεις πού να βρω μία καλή εξήγηση για το X;" είναι συνήθως μία εξυπνότερη ερώτηση από το "Θα μου εξηγήσεις το X, σε παρακαλώ;". Αν έχεις κάποιον κώδικα που συμπεριφέρεται λανθασμένα, είναι συνήθως εξυπνότερο να ζητήσεις από κάποιον να σου εξηγήσει τι φταίει από το να ζητήσεις από κάποιον να το διορθώσει.
Μην ζητάς από άλλους να αποσφαλματώσουν τον κώδικά σου, που δε δουλεύει, χωρίς να τους δώσεις κάποια ένδειξη για το τι είδους πρόβλημα θα πρέπει να ψάξουν. Το να στείλεις μερικές εκατοντάδες γραμμές κώδικα λέγοντας "δεν δουλεύει", θα κάνει τους άλλους να σε αγνοήσουν. Το να στείλεις μερικές ντουζίνες γραμμές κώδικα λέγοντας "μετά την γραμμή 7 ανέμενα να δω <x>, αλλά το <y> έλαβε χώρα αντ' αυτού" είναι πολύ πιο πιθανό να σε οδηγήσει σε μία απάντηση.
Αν απλώς θέλεις κάποιον να αναθεωρήσει τον κώδικά σου, πες το απ' την αρχή, και σιγουρέψου ότι αναφέρεις τις περιοχές που νομίζεις ότι συγκεκριμένα χρειάζονται αναθεώρηση και γιατί.
Οι hackers είναι καλοί στο να εντοπίζουν ερωτήσεις που είναι εργασίες για το σπίτι -- οι περισσότεροι από εμάς τις έχουμε κάνει οι ίδιοι. Αυτές οι ερωτήσεις είναι για να τις βρεις εσύ, έτσι ώστε να μάθεις από την εμπειρία. Είναι εντάξει να ζητάς βοήθεια, αλλά όχι τις ολοκληρωμένες λύσεις.
Αν υποψιάζεσαι ότι σου έδωσαν μία ερώτηση που είναι εργασία για το σπίτι, αλλά δεν μπορείς να την λύσεις ούτως ή άλλως, δοκίμασε να ρωτήσεις σε ένα forum ομάδας χρηστών ή (ως τελευταία λύση) σε μία λίστα/forum "χρήστη" ενός project. Αν και οι hackers πρόκειται να το καταλάβουν, κάποιοι από τους προχωρημένους χρήστες μπορεί τουλάχιστον να σου δώσουν κάποια συμβουλή.
Αντιστάσου στον πειρασμό να ολοκληρώσεις την επίκλησή σου για βοήθεια με ερωτήσεις κενές περιεχομένου όπως "Μπορεί κανείς να με βοηθήσει;" ή "Μήπως υπάρχει καμία απάντηση;" Πρώτον: αν έχεις γράψει την περιγραφή του προβλήματός σου ημιεπαρκώς, τέτοιες επιπρόσθετες ερωτήσεις είναι επιεικώς περιττές. Δεύτερον: επειδή είναι περιττές, οι hackers τις βρίσκουν ενοχλητικές -- και υπάρχει πιθανότητα να επιστρέψουν λογικά αψεγάδιστες αλλά κατά τα άλλα περιφρονητικές απαντήσεις όπως "Ναι, μπορούμε να σε βοηθήσουμε" και "Όχι, για σένα δεν θα υπάρξει βοήθεια."
Γενικώς, το να κάνεις ερωτήσεις ναι-ή-όχι είναι ένα καλό πράγμα να αποφεύγεις, εκτός αν θέλεις μία απάντηση με ναι-ή-όχι.
Αυτό είναι δικό σου πρόβλημα όχι δικό μας. Το να υποστηρίξεις ότι κάτι είναι επείγον είναι πολύ πιθανό να είναι αντιπαραγωγικό: οι περισσότεροι hackers απλώς θα διαγράψουν ένα τέτοιο μήνυμα ως μία αγενή και εγωιστική προσπάθεια για προσέλκυση άμεσης και ειδικού είδους προσοχής.
Υπάρχει σχεδόν μία εξαίρεση. Μπορεί να αξίζει να αναφέρεις ότι χρησιμοποιείς το πρόγραμμα σε κάποιο μέρος με υψηλή κινητικότητα, για το οποίο οι hackers να ενθουσιαστούν -- σε αυτή την περίπτωση, αν βρίσκεσαι κάτω από συνθήκες πίεσης χρόνου, και το πεις ευγενικά, μπορεί κάποιοι να ενδιαφερθούν αρκετά για να βοηθήσουν γρηγορότερα.
Αυτό, όμως, είναι ένα πολύ επικίνδυνο πράγμα που μπορείς να κάνεις, επειδή τα σταθμά των hackers σχετικά με το τι είναι διασκεδαστικό πιθανότητα διαφέρει πολύ από τα δικά σου. Το να στείλεις ένα μήνυμα από τον Διεθνή Διαστημικό Σταθμό θα έκανε τη δουλειά, για παράδειγμα, αλλά το να στείλεις κάτι αντιπροσωπεύοντας μία αγνή φιλανθρωπική ή πολιτική αξία μάλλον όχι. Στην πραγματικότητα, το να στείλεις "Επείγον: βοηθήστε με να σώσω τις χνουδωτές φώκιες!" εγγυημένα θα σε κάνει να αγνοηθείς ή να σου τα ψάλουν ακόμη και οι hackers που θεωρούν ότι οι χνουδωτές φώκιες είναι σημαντικές.
Αν το βρίσκεις μυστηριώδες, ξαναδιάβασε το υπόλοιπο αυτού του εγγράφου επανειλλημένα μέχρι να το καταλάβεις πριν να ξαναστείλεις το οτιδήποτε.
Να είσαι ευγενής. Χρησιμοποίησε "παρακαλώ" και "Ευχαριστώ για την προσοχή σου" ή "Ευχαριστώ για την παρατήρηση". Κάν' το ξεκάθαρο ότι εκτιμάς τον χρόνο που οι άλλοι άνθρωποι ξοδεύουν για να σε βοηθήσουν τζάμπα.
Για να είμαι ειλικρινής, αυτό δεν είναι όσο σημαντικό όσο είναι (και δεν μπορεί να αντικαταστήσει) το να είσαι γραμματικά σωστός, ξεκάθαρος, ακριβής και περιγραφικός, το να αποφεύγεις κλειστά πρότυπα κλπ. -- οι hackers γενικά προτιμούν να τους φερθούν κάπως αγενώς αλλά κάνοντας τεχνικά σωστές αναφορές σφαλμάτων από το να λάβουν μία ευγενή ασάφεια. (Αν αυτό σε προβληματίζει, θυμήσου ότι εκτιμούμε μία ερώτηση από το τι μας διδάσκει.)
Εντούτοις, αν έχεις τα τεχνικά σου πράγματα σε μία σειρά, η ευγένεια αυξάνει τις πιθανότητές σου να λάβεις μία χρήσιμη απάντηση.
(Πρέπει να σημειώσουμε ότι η μόνη σοβαρή διαφωνία που έχουμε λάβει από φτασμένους hackers σχετικά με αυτό το έγγραφο είναι όσων αφορά την προηγούμενή μας προτροπή να γίνεται χρήση του "Ευχαριστώ προκαταβολικά". Μερικοί hackers θεωρούν ότι αυτό συνεπάγεται την πρόθεση να μην ευχαριστούμε κανέναν κατόπιν. Η προτροπή μας είναι είτε να λες "Ευχαριστώ εκ των προτέρων" πρώτα και να ευχαριστείς τους συνομιλητές που απάντησαν στη συνέχεια, ή να εκφράζεις την ευγνωμοσύνη σου με κάποιον διαφορετικό τρόπο, όπως λέγοντας "Ευχαριστώ για την προσοχή" ή "Ευχαριστώ για την παρατήρηση".)
Στείλε μία σημείωση αφού λυθεί το πρόβλημα σε όλους όσους σε βοήθησαν -- πες τους ότι λύθηκε και ευχαρίστησέ τους ξανά για τη βοήθειά τους. Αν το πρόβλημα προσέλκυσε γενικότερο ενδιαφέρον σε μία mailing list ή ομάδα, είναι πρέπον να στείλεις την απάντηση αυτή εκεί.
Βέλτιστα, η απάντηση αυτή θα πρέπει να είναι στο αρχικό thread που ξεκίνησε με την αποστολή της αρχικής ερώτησης, και θα πρέπει να έχει κάτι όπως `ΔΙΟΡΘΩΘΗΚΕ', `ΛΥΘΗΚΕ' ή κάποια εξίσου προφανή ετικέτα στην γραμμή θέματος. Σε μία mailing lists με γρήγορες εξελίξεις, ένας πιθανός συνομιλητής που βλέπει ένα thread σχετικό με το "Πρόβλημα X" να λήγει με "Πρόβλημα X - ΔΙΟΡΘΩΘΗΚΕ" ξέρει να μην σπαταλήσει τον χρόνου του/της διαβάζοντας το thread (εκτός και αν ενδιαφέρεται ο ίδιος ή η ίδια για το