+++
title = 'Παραμετροποιώντας τον slrn'
date = '1999-03-01T00:00:00Z'
description = ''
author = 'Κώστας Κωτσοκάλης(mailto:C.Kotsokalis@ece.ntua.gr)'
issue = ['Magaz 14']
issue_weight = 2
+++

----------------------------------------------------------------------------------------------------------------------------------------------------------------

*Εισαγωγικά: Ο slrn είναι ένας news (usenet) reader. \'Αλλοι news readers που ενδεχομένως έχετε υπόψη και χρησιμοποιείτε είναι το γνωστό module του Netscape
Communicator, ο knews, ο krn του KDE, ο tin, ο nn, ο News Peruser και άλλοι. Ο slrn ανήκει στον κατηγορία των text-based news readers, δηλαδή μπορείτε να τον
χρησιμοποιείτε στην κονσόλα ή σε κάποιο xterm. Παρ\'όλο που αυτό εκ πρώτης όψεως είναι απωθητικό στον σημερινό everything-should-be-graphical κόσμο των
υπολογιστών, στην πραγματικότητα ο slrn είναι εξαιρετικά εργονομικός και χρησιμοποιεί menus τα οποία δεν θα πρέπει να δυσκολέψουν κανέναν. Ο slrn είναι η
συνήθως η επιλογή των linux users που θέλουν έναν ελαφρύ σε απαιτήσεις news reader, με όλη τη λειτουργικότητα που μπορεί να απαιτεί κανείς αλλά χωρίς τα
\`\`bells and whistles\'\' των περισσότερων γραφικών news readers. Είναι προφανές πως κάποιοι δεν θα θέλουν να αφήσουν τον γραφικό news reader τους, όμως μια
δοκιμή νομίζω πως θα τους πείσει ότι ο slrn είναι όλα όσα χρειάζονται.*

----------------------------------------------------------------------------------------------------------------------------------------------------------------

**1. Κάτι ακόμα\...**
--------------------------------------------

**2. Λειτουργία offline**
------------------------------------------------

**3. Πολλαπλοί servers**
-----------------------------------------------

**4. Κλείνοντας**
----------------------------------------


### [1. Κάτι ακόμα\...]{#s1}

Στο άρθρο αυτό πρόκειται να μιλήσουμε για το πώς θα κάνουμε τον slrn να υποστηρίζει offline reading \-- πράγμα αναγκαίο με τα εξωφρενικά τιμολόγια του (π)ΟΤΕ
\-- και επιπλέον πως θα υποστηρίζει πολλαπλούς news servers. Ακόμα θα δώσουμε κάποια hints για την πιο αποδοτική χρήση του και μερικά configuration directives.

Για να χρησιμοποιήσετε τον slrn κατ\'αυτόν τον τρόπο θα πρέπει να πάρετε και να κάνετε compile τον slrn καθώς και μια αναγκαία βιβλιοθήκη, την slang. Αυτά
έρχονται μαζί με τα περισσότερα distributions, αλλά στη RedHat τουλάχιστον που χρησιμοποιώ εγώ λείπουν αναγκαία πράγματα, ενώ οι εκδόσεις του slrn και της slang
που περιέχονται είναι σχετικά παλιές.

Τον πηγαίο κώδικα για αυτά τα δύο θα βρείτε στα:

1.  <ftp://space.mit.edu/pub/davis/slang/slang1.2.2.tar.gz> ή <ftp://ftp.ntua.gr/pub/lang/slang/slang/slang1.2.2.tar.gz>
2.  <ftp://space.mit.edu/pub/davis/slrn/slrn0.9.5.4.tar.gz> ή <ftp://ftp.ntua.gr/pub/lang/slang/slrn/slrn0.9.5.4.tar.gz>


### [2. Λειτουργία offline]{#s2}

Για να διαβάσετε τα newsgroups που σας ενδιαφέρουν offline, πρέπει να εγκαταστήσετε και το slrnpull που συνοδεύει τον slrn (τα sources του βρίσκονται στο ίδιο
αρχείο με αυτά του slrn). Αφού κάνετε compile και εγκαταστήσετε την slang, τον slrn και το slrnpull (οδηγίες για αυτά θα βρείτε στα READMEs, INSTALLs κλπ που
συνοδεύουν τον πηγαίο κώδικα), πρέπει να κάνετε τα παρακάτω.

Έστω ότι έχετε ένα μόνο news server από τον οποίο διαβάζετε άρθρα. Τότε, φτιάχνετε τον κατάλογο /var/spool/slrnpull και μέσα σε αυτόν φτιάχνετε ένα αρχείο με
όνομα slrnpull.conf με την παρακάτω μορφή:

    # default: katebase ews 2000 articles apo ton news server, krathse
    # ta 30 meres prin to expire.
    default             2000    30

    # newsgroup entries
    newsgroup1
    newsgroup2
    newsgroup3

\...όπου αντί για newsgroup\[1,2,3\] βάζετε τα ονόματα των newsgroups που σας ενδιαφέρουν, π.χ. comp.os.linux.kernel, comp.lang.c, soc.culture.greek,
comp.unix.programmer κ.ο.κ. Στη συνέχεια φτιάχνετε στο home directory σας ένα αρχείο με το όνομα .slrnrc στο οποίο βάζετε τις εξής επιλογές:

    set spool_inn_root "/var/spool/slrnpull"
    set spool_root "/var/spool/slrnpull/news"
    set spool_nov_root "/var/spool/slrnpull/news"
    set use_slrnpull 1
    set read_active 1
    set server_object "spool"

Αυτά δεν είναι τα μόνα options που μπορείτε να βάλετε στο .slrnrc σας, υπάρχουν πάρα πολλά ακόμα που ρυθμίζουν την συμπεριφορά του slrn σχεδόν όσο εσείς θέλετε.
Στη συνέχεια του άρθρου θα δώσουμε κάποια τέτοια options που ο υπογράφων έχει βρει χρήσιμα.

Αν έχετε κάνει τα παραπάνω, τρέξτε

    slrnpull -d /var/spool/slrnpull -h {news_server}

, όπου {news\_server} το hostname του news server σας. Τότε θα έρθουν για πρώτη φορά όλα τα άρθρα που περιλαμβάνονται στα newsgroups που ορίσατε στο
slrnpull.conf, ενώ από εκεί και πέρα κάθε φορά που θα δίνετε την παραπάνω εντολή θα έρχονται μόνο τα καινούργια άρθρα. Μην ξεχνάτε που και που να τρέχετε την
εντολή `                             slrnpull -d /var/spool/slrnpull --expire` που αναλαμβάνει να σβήσει τα άρθρα που είναι παλαιότερα από τον αριθμό των ημερών
που έχετε ορίσει στο slrnpull.conf. Αφού τρέξετε το slrnpull, δώστε \`\`slrn -create\'\' και μετά \`\`slrn -C\'\' και θαυμάστε τα αποτελέσματα.

Προτείνουμε να διαβάσετε και λίγο παρακάτω πριν τρέξετε τον slrn, για να δείτε τι άλλες επιλογές μπορείτε να βάλετε στο .slrnrc και επομένως να τον
χρησιμοποιήσετε από τον αρχή με όλη του τη λειτουργικότητα.


### [3. Πολλαπλοί servers]{#s3}

Για να διαβάζετε από πολλούς news servers πρέπει να κάνετε τα εξής:

1.  Αντί για ένα μόνο directory κάτω από το /var/spool φτιάχνετε ένα για κάθε news server. Έτσι θα πρέπει να έχετε τα directories /var/spool/newsserver1,
    /var/spool/newsserver2, κλπ, όπου αντί για newsserver1, newsserver2 μπορείτε να βάλετε τα ονόματα που θέλετε.
2.  Σε κάθε ένα από αυτά τα directories φτιάχνετε ένα slrnpull.conf αρχείο όπως πιο πάνω, με τα groups που θέλετε κάθε φορά και ανάλογα με τον news server στον
    οποίο αντιστοιχεί το configuration file.
3.  Φτιάχνετε περισσότερα από ένα .slrnrc αρχεία στο home direstory σας, π.χ. .slrnrc.ns1, .slrnrc.ns2, κλπ, οπού και πάλι αντί για ns1, ns2,\... μπορείτε να
    έχετε όποιο όνομα επιθυμείτε (για μνημονικούς λόγους). Σε κάθε ένα από αυτά αλλάζετε μόνο τα spool\_inn\_root, spool\_root και spool\_nov\_root ανάλογα με
    τον news server στον οποίο αντιστοιχεί το configuration file. Επίσης φτιάχνετε κενά αρχεία με ονόματα .jnewsrc.ns1, .jnewsrc.ns2, κοκ.
4.  Εάν επιθυμείτε και για λόγους ταχύτητας φτιάχνετε aliases όπως τα παρακάτω:
    1.  `alias sp "slrnpull -d /var/spool/newsserver1                                     -h news_server1_hostname; slrnpull -d                                     /var/spool/newsserver2 -h                                     news_server2_hostname"`
        (προφανώς βάζετε ένα entry για κάθε news server, οπότε δίνοντας απλά \`\`sp\'\' έρχονται τα νέα άρθρα από όλους τους news servers σας\... Εναλλακτικά
        μπορείτε να φτιάξετε και κάποιο script για αυτή τη δουλειά).
    2.  `alias ns1 "cd $HOME; \cp .slrnrc.ns1 .slrnrc;                                     \cp .jnewsrc.ns1 .jnewsrc; slrn -C; \cp .jnewsrc                                     .jnewsrc.ns1"`
    3.  `alias ns2 "cd $HOME; \cp .slrnrc.ns2 .slrnrc;                                     \cp .jnewsrc.ns2 .jnewsrc; slrn -C; \cp .jnewsrc                                     .jnewsrc.ns2"`
    4.  `alias ns3 "cd $HOME; \cp .slrnrc.ns3 .slrnrc;                                     \cp .jnewsrc.ns3 .jnewsrc; slrn -C; \cp .jnewsrc                                     .jnewsrc.ns3"`

    Στη συνέχεια, δίνοντας τα παραπάνω aliases, έχετε κάτι σαν \`\`έναν slrn για κάθε news server\'\'.


### [4. Κλείνοντας]{#s4}

Έχοντας κάνει τα παραπάνω θα πρέπει να έχετε τον slrn παραμετροποιημένο για offline reading και πολλαπλούς news servers. Ακόμα όμως και αν δεν σας ενδιαφέρουν
αυτά τα δύο (leased line? direct internet connection?), μπορείτε να χρησιμοποιήσετε τον slrn για να διαβάζετε news. Απλά φτιάχτε ένα .slrnrc file και τρέξτε
slrn.

Έτσι ή αλλιώς, θα χρειαστείτε κάποια επιπλέον configuration options στο .slrnrc σας. Κάποια τέτοια είναι τα παρακάτω:

    # Oi parakatw tesseris grammes einai gia na orisete to onoma sas kai na 
    # mhn fainetai san root@localhost.localdomain
    hostname "ece.ntua.gr"
    set username "C.Kotsokalis"
    set replyto "C.Kotsokalis@ece.ntua.gr"
    set realname "Constantinos A. Kotsokalis"

    # O xairetismos sta follow-ups
    set followup "On %d, %r wrote:"

    # Oi browsers pou tha anoigoun analoga me to pws trexete
    # ton slrn. Gia ta deite ta URLs pou periexontai se ena
    # article, patate ``U'' (kefalaio).
    set Xbrowser "netscape -remote 'openURL(%s)' &"
    set non_Xbrowser "lynx %s"

    # Apo poy erxeste...
    set organization "National Technical University of Athens"

    # Opws prin, gia offline reading. An den to xrhsimopoieite,
    # oi epomenes 6 grammes mporoun na fygoun apo edw.
    set spool_inn_root "/var/spool/slrnpull"
    set spool_root "/var/spool/slrnpull/news"
    set spool_nov_root "/var/spool/slrnpull/news"
    set use_slrnpull 1
    set read_active 1
    set server_object "spool"

    # MIME & swsta charsets
    set use_mime 1
    set mime_charset "iso-8859-7"

    # Gia na epitrepei na stelnete articles me grammes pou exoun
    # perissoteres apo 80 sthles
    set reject_long_lines 2

    # Gia na mhn baraei synexeia to bell alla na kanei flash
    set beep 2

    # Gia na deixnei belos anti gia mpara
    set display_cursor_bar  0

    # Gia na mhn sas rwtaei gia OTI pate na kanete
    set confirm_actions 0

    # Sorting method: Prwta kanei to threading twn articles,
    # kai meta ta ta3inomei me bash thn hmeromhnia apostolhs,
    # to pio palio paei prwto sth lista.
    set sorting_method 11

    # Gia na mhn rwtaei posa arthra na ferei, an o ari8mos tous
    # 3epernaei to noumero pou orizete edw. An orisete otidhpote
    # ektos apo 0, estw X, kai ta nea ar8ra se kapoio group einai
    # perissotera apo X, tha sas rwthsei posa na ferei (me default
    # X). Bazontas 0 fernei ola ta nea ar8ra, osa kai an einai.
    set query_read_group_cutoff 0

    # Automath xrhsh tou metamail otan xreiazetai, prepei
    # na to exete egkatasthsei.
    set use_metamail 1

    # An diabazete news ws root, prepei na balete thn parakatw
    # grammh gia na trexei to metamail swsta.
    set metamail_command "metamail -r"

Υπάρχουν ακόμα πάρα πολλά options που μπορείτε να χρησιμοποιήσετε, και θα τα βρείτε στα sample files που συνοδεύουν τον slrn. Για παράδειγμα, μπορείτε να
ορίσετε ότι χρώματα θέλετε, όπως επίσης και τον τρόπο με τον οποίο ο slrn κάνει scoring στα άρθρα που διαβάζει. Το scoring είναι μια μέθοδος για να
κατηγοριοποιεί τα άρθρα ανάλογα με τη σημασία τους, και με βάση διάφορα κριτήρια που εσείς ορίζετε. Πρόκειται για ένα από τα πιο δυνατά σημεία του slrn, το
οποίο όμως είναι κάπως πιο προχωρημένο. Όταν με το καλό εντρυφήσετε στα υπόλοιπα, ρίχτε του μια ματιά.

Καλή ανάγνωση!!!

