IL MANUALE DI XNEWS

Guarda, ti sto buttando avanti come un newbie in mezzo ai lupi. RTFM!

Copyright © Luu Tran 1998-2001. Tutti i diritti sono riservati.
http://xnews.3dnews.net

Nota: changes.txt contiene le modifiche più recenti ed è più aggiornato rispetto al manuale. Leggi anche quello, vi troverai un sacco di materiale interessante.

XNEWS è freeware. Può essere liberamente distribuito fornendo l'indicazione del copyright senza modificare il contenuto dei file. E' inutile ricordare che non devi pagare nulla. Il suo impiego è a tuo rischio, ecc. ecc. ;-)

Ora che ho rilasciato Xnews in Rete, sto ricevendo una montagna di e-mail. Così, se hai dubbi o problemi, per favore:

  1. Leggi questo manuale.
  2. Rileggilo.
  3. Cerca di arrangiarti.
  4. Prova ancora con maggiore impegno.
  5. Se sei ancora a terra, invia il quesito al gruppo di discussione news:news.software.readers. Se non hai accesso a un news server, o se non stai usando un newsreader, puoi provare a leggerlo tramite Dejanews.

Nota: a causa di spiacevoli esperienze, con dispiacere ho deciso di non rispondere più alle domande via e-mail. Benché la maggior parte delle persone sia educata, il rispondere per e-mail mi ha esposto ad abusi da parte di alcune persone. Così, per favore, poni i tuoi quesiti su news:news.software.readers. Grazie.

 

* RTFM! Read The Fucking Manual (leggi il fottuto manuale)


Nota: Tanto per iniziare leggi almeno le prime cinque sezioni. Inoltre, leggi changes.txt per vedere quali sono le novità introdotte.

SOMMARIO

  1. Questo programma fa per me?
  2. Primi passi
  3. Le cose principali che dovresti sapere di Xnews
  4. Come fare per...
  5. Le scorciatoie da tastiera
  6. Risoluzione dei problemi e FAQ (frequently asked questions)
  7. A cosa serve...
  8. Suggerimenti e trucchi nascosti
  9. Filtri, filtri ovunque
  10. Organizzare i gruppi sottoscritti in categorie
  11. Archiviazione di intestazioni e articoli
  12. Cartelle
  13. Xnews.ini: impostazioni globali
  14. Groups.ini: impostazione in base ai gruppi
  15. Plonk file
  16. Score file
  17. Le espressioni regolari (regular expression)
  18. Riconoscimenti

1. Questo programma fa per me?

Considera questo programma un po' come una beta. E' un progetto che curo per hobby dove cerco di apportare frequenti modifiche in modo da migliorarne la stabilità. Non c'è alcun help file, solo questo manuale.

Xnews è un newsreader generico. Benché sia in grado di trattare i binari (abbastanza bene secondo le mie intenzioni), non può essere considerato un grabber o un visualizzatore di immagini. Inoltre, Xnews è un reader on-line. Ha funzioni pseudo off-line come lo 'storage', ma se hai bisogno di un vero supporto per l'off-line, usa Agent, Gravity o altro.

Sono un fan di NewsXpress (NX) così ho liberamente preso a prestito le idee di quel programma. Infatti, gli utenti di NX trovano familiarità con Xnews. Detto questo, Xnews non è NewsXpress. Non ho creato un clone. Ho le mie idee e il mio modo di intendere come le cose debbano essere fatte. Benché Xnews possa apparire somigliante a NX, ha anche alcune caratteristiche che allo stesso tempo il secondo non ha.

Per quanto riguarda questo documento: so che è piuttosto striminzito, ma per favore leggilo. Sono partito dal principio che tu abbia usato altri newsreader e che conosca il funzionamento di base di Usenet, in modo da soprassedere su cose che esulano dall'operato di Xnews.

Ho scritto Xnews per mio uso e consumo. Il programma riflette fortemente le mie preferenze, il mio ambiente e la mia sensibilità. Le linee guida di ricerca per gli end-user vanno nella direzione di questo software, benché esso appartenga a un solo utente. L'interfaccia è un po' complicata e il programma ha quello che il mondo del freeware può dare. Se pensi che Microsoft rappresenti l'apoteosi del design nel software, questo programma non fa probabilmente per te. In caso contrario, potresti imparare ad amarlo -- oppure no. E' gratis.

Questo significa, se c'è qualcosa che vorresti vedere aggiunto o cambiato, non indugiare a chiedere. Apporterò le modifiche se i cambiamenti risulteranno tanto graditi al maggior numero di persone possibile, quanto di minore affanno per me.

E vai.

indietro


2. Primi passi

Se stai usando Windows 95 e non hai installato Internet Explorer, potresti aver bisogno del nuovo Microsoft comctl32.dll. (Se apri Xnews e non vedi alcuna icona, oppure l'elenco è vuoto nonostante il programma sembra scaricare dei dati, allora è anche probabile che tu debba aggiorarti con la nuova dll.)

Non c'è alcun programma di installazione. Basta decomprimere il file .zip in una directory e lanciare Xnews.exe. Se stai facendo un aggiornamento, decomprimi sovrascrivendo il tutto.

La prima volta che apri Xnews, ti apparirà una finestra di dialogo per il Setup. Inserisci il tuo nome, ecc.. In questa guida mi limito a descrivere solo i passi che potrebbero risultare non familiari.

Public Email
Questa è l'email che vorrai mettere nel campo "From:" delle intestazioni dei tuoi articoli Usenet. Email, invece, è quella che vuoi usare nelle repliche per via privata.
Perché usare indirizzi e-mail separati per Usenet e la posta elettronica? Lo faccio per aiutare l'utente a evitare lo spam.

IDToken
Questa è una stringa che Xnews inserisce nel Message-ID al fine di tracciare i tuoi post e avvisarti nel caso replicassi a un tuo articolo. Puoi usare ogni stringa di lettere e numeri. Personalmente uso la mia e-mail senza la chiocciolina @. L'idea è di usare una stringa che probabilmente nessun altro usa.

Una volta che hai fatto ciò, clicca su OK. Xnews ti chiederà di creare un 'server profile' (Xnews è in grado di trattare server multipli). Inserisci il nome del tuo server, ad esempio, news.mindspring.com. Dopo inserisci un alias o titolo per il server, ad esempio, Mindspring. L'alias è ciò che poi apparirà nel menù.

E' tutto. Ora dovresti dare 'yes' quando ti chiederà se vuoi scaricare l'elenco dei newsgroup disponibili. Buon divertimento.

indietro


3. Le cose principali che dovresti sapere di Xnews.

Primo, un po' di terminologia: quando parlo di 'groups window', intendo la finestra che elenca tutti i gruppi disponibili in un server. 'article window' si riferisce alla finestra che elenca gli articoli di un gruppo e che, inoltre, mostra l'articolo selezionato.

groups window

  • Puoi fare selezioni multiple allo stesso modo di Gestione/Esplora risorse, usando il mouse o la tastiera abbinati a Ctrl e Shift.
  • Quando è selezionata l'opzione 'All' in basso, puoi inserire una stringa nel box ad essa affiancato per vedere solo quei gruppi il cui nome la contiene. Spunta la checkbox alla sinistra di questo box se vuoi riscontrare tutti i gruppi che cominciano per... invece di quelli che contengono la stringa in qualsiasi posizione. Puoi fare la stessa cosa in 'articles windows', con l'unica eccezione che in quel caso la stringa è considerata una espressione regolare (regexp).
  • Puoi modificare la larghezza delle colonne in entrambe le finestre (groups e articles). Trascinare e rilasciare le colonne al fine di ordinarne la posizione come meglio ti aggrada.

articles window

  • L'elenco degli articoli e il viewer condividono la stessa finestra (cosa diversa da NewsXpress). Cliccando su F12 puoi lasciare tutta la finestra agli articoli o al viewer (full view) o a entrambi (split view). Per passare dall'elenco degli articoli al viewer o viceversa è sufficiente premere 'invio' (return). Puoi fare la stessa cosa selezionando il menù 'View | Switch List <-> Viewer' o cliccando con il mouse nel secondo riquadro nero da sinistra della barra in fondo.
  • Quando sei in 'split view', basta un semplice click sul subject per leggere l'articolo che ti interessa. (Clicca in qualsiasi altra colonna che non sia 'subject' se non vuoi aprire l'articolo). In 'full view', invece, hai bisogno del doppio click. In ogni caso, premendo 'invio' (return) ottieni lo stesso risultato.
  • Quando il focus (cursore) è nell'elenco, se clicchi 'Goto next(/prev/...)', si muoverà sull'articolo successivo/precedente alla posizione in cui si trovava in precedenza il cursore (articolo selezionato). Se invece il cursore è sul viewer (split o full view), la selezione si muoverà verso l'articolo successivo/precedente nell'elenco lasciando però il focus all'interno del viewer. Per spostare velocemente la selezione all'articolo che stai leggendo nel viewer, devi premere 'c' o cliccare sulla progress bar in fondo alla finestra (Show Batch Progress).
  • Per fare reply/followup/forward di un articolo, devi per prima cosa aprirlo (quindi leggerlo). Inoltre, il focus (cursore) deve essere nel viewer.

In generale

  • Puoi personalizzare la tastiera (alt+K). In questo modo puoi vedere un elenco di scorciatoie, anche se non tutte sono visibili nel menù.
  • Non c'è alcun pulsante per connettere o disconnettere il reader. Il programma si connette non appena ne ha bisogno e si disconnette quando si chiude il server (es. disconnessione da Internet, chiusura del news server locale, ecc.) oppure quando Xnews viene chiuso. Cerca di evitare l'apertura di troppe connessioni simultanee. Potresti appesantire inutilmente il news server e incorrere in rallentamenti fino alla definitiva disconnessione. (Se il programma è occupato a fare qualcosa e apri un altro gruppo o leggi un articolo o richiedi il totale degli articoli, ecc., Xnews aprirà una nuova connessione.) Ai fini dei requisiti GNKSA, Xnews si limita a 4 connessioni simultanee allo stesso news server. Tuttavia, alcuni server possono impostare un limite inferiore, come 2 o 3 connessioni simultanee.
  • Xnews supporta i server multipli. Puoi anche aprire più server nello stesso tempo, nella stessa finestra. Nota: evita l'avvio simultaneo di più copie di Xnews. Non solo sprechi memoria, ma puoi anche andare incontro a conflitti che causano ogni sorta di bizzarrie.
  • Puoi definire identità multiple con nomi, e-mail e signature differenti attraverso il 'Setup dialog'. Quando spedisci un articolo, puoi selezionare quale identità usare. Puoi anche specificare quale identità usare con un certo server o newsgroup (read on).
  • Puoi personalizzare alcune impostazioni per ogni specifico server. Per esempio, nel server A, puoi usare l'identità X; nel server B, puoi usare l'identità Y. Guardando il 'Setup dialog' non dovresti avere problemi nel farlo.
  • Allo stesso modo, puoi personalizzare alcune impostazioni per ogni singolo gruppo o insieme di gruppi. Puoi essere avvisato della tua presenza in un gruppo con 'binaries' o 'binari' nel nome. Le informazioni saranno visualizzate diversamente. Per esempio, tutti i threads non saranno più automaticamente espansi. Questo è il risultato di alcune impostazioni in groups.ini. Sfortunatamente, per personalizzazioni 'group-based' devi editare manualmente il file groups.ini. A tal proposito, leggi la sezione intitolata 'Groups.ini: impostazione in base ai gruppi'.
  • Xnews archivia la maggior parte delle impostazioni negli .ini files che tu puoi modificare direttamente. I principali sono:

    xnews.ini - impostazioni globali
    servers.ini - informazioni sui server e personalizzazioni delle impostazioni di ognuno di essi.
    groups.ini - personalizzazione delle impostazioni di ogni gruppo

    Ovviamente da modificare direttamente solo quando ce ne è bisogno. Usa il menù del setup in tutti gli altri casi.

indietro


4. Come fare per...

Q: ...scaricare le ultime n intestazioni da un newsgroup.

Re: invece di 'invio' (return) per aprire il gruppo, premi 'Ctrl+invio'. In questo modo si aprirà una finestra di dialogo che permette di selezionare quante intestazioni (headers) vuoi scaricare. Questo è molto utile quando vuoi estrarre un campione di articoli da un gruppo molto affollato. Quando invece sei posizionato nell'elenco degli articoli, puoi aprire questa finestra di dialogo attraverso 'Article | Refresh Headers Special' (Ctrl+F5). Per esempio: premi Ctrl+Invio aprendo un gruppo e specifica 100 intestazioni da scaricare. Xnews scaricherà le 100 intestazioni più recenti. Una volta viste le intestazioni, dall'elenco degli articoli, potresti decidere di leggere un articolo più vecchio. In questo caso userai Ctrl+F5, poi sposterai la barra orizzontale all'indietro nel tempo (a sinistra) in modo caricare quante intestazioni ti interessano oppure la porterai a fondo corsa in modo da richiedere tutto.

Q: ...decifrare/salvare/spostare diversi articoli in una volta?

Re: Xnews usa un sistema di accodamento (queue). Per mettere un articolo nel 'queue', usa la barra spaziatrice. Con essa puoi rimuovere lo stesso articolo dal queue. Quando accodi un articolo, leggerai nella colonna Q un numero che indica l'ordine di accodamento. Ora, seleziona 'Article | Decode/Save as...' oppure 'Transfer | (folder)'. Si può anche accodare o liberare un intero thread in un solo colpo.

Q: ...decifrare articoli binari (multipart binaries)?

Re: In modo predefinito, Xnews organizza i thread per divisione in parti nei gruppi che hanno la parola 'binaries' nel nome (molto meglio di quanto fa NewsXpress). Questa operazione si chiama 'multipart threading' e comporta l'assemblaggio di tutte le parti di un file all'interno di un thread. Se il file è completo, si vedrà un'icona a cubo di quattro blocchi vicino ad esso; se al file mancano una o più parti, mancherà un blocco al cubo dell'icona. Anche guardando la colonna 'Lines', si può dire esattamete da quante parti è composto il file e quante parti sono presenti.

Per accodare un file binario ripartito in più parti (multipart binary), seleziona il thread (con l'icona a forma di cubo) e premi la barra spaziatrice. Xnews segnerà tutte le singole parti al posto tuo. A questo punto usa Article | decode (F4).

Attenzione: con alcuni tipi di file, è possibile campionare il file in questo modo: espandi il thread, poi individua alcune parti da accodare, ad esempio 1/10, 4/10, 8/10. Devi almeno accodare la prima parte. Questo funziona bene per i file mp3 ma ovviamente non per i file zip dato che risulterebbero corrotti e illeggibili. (Temo che il 'campionamento' non funzioni per file codificati in MIME).

Alcune parole sullo 'smart decoding'

Partendo dalla versione Y2K-SE, Xnews è in grado di recuperare un 'multipart threading' dall'ultima parte decifrata con esito positivo (altrimenti avrebbe dovuto rifare tutto dall'inizio). Xnews fa questo salvando alcune informazioni sull'avanzamento della decifratura in file *.ini in una cartella temporanea (temp). Se l'operazione s'interrompesse mentre stai decifrando un file multipart, vedrai il nome del file modificarsi in:

filename__error_part_X.ext

Non cancellare o rinominare questo file. Vedrai anche alcuni file *.ini nella cartella temporanea (temp). Non cancellare nemmeno quest'ultimi. Ricomicia e accoda il file che cercavi di decifrare partendo dalla parte X. Per esempio, se il file multipart è composto da 20 parti e X equivale a 14, dovresti accodare le parti da 14 a 20 comprese. Clicca su 'Decode' e Xnews dovrebbe ricominciare laddove aveva terminato. (In realtà non dovrebbe esserci bisogno di accodare le parti mancanti; puoi accodare l'intero come si fa normalmente, mentre Xnews dovrebbe calcolarselo in proprio, ma il primo metodo è più sicuro.)

Se questa caratteristica dovesse darti delle noie, la puoi disabilitare in Xnews.ini [Misc] impostando UseSmartDecode=0

Q: ...cancellare un articolo?

Re: Per cancellare un articolo, devi prima di tutto trovarlo e scaricarlo. Come sempre, puoi fare questo aprendo il gruppo o usando 'XPAT search' (vedi oltre).

Q: ...ricercare per XPAT?

Re: La maggior parte dei server ha funzioni chiamate XPAT search, le quali realizzano ricerche server-side per articoli (in altre parole, ricercano cosa c'è nel server). Per fare una ricerca, seleziona il campo o intestazione a cui sei interessato. Nella maggior parte dei casi, probabilmente vorrai cercare per titolo (subject) o autore (from). La stringa di ricerca è una 'Unix wildmat', che significa che hai bisogno di cingere la stringa con 'wild cards' (asterischi) a meno che tu non voglia fare una ricerca per stringa esatta. Per esempio, se tu scrivi help, non leggerai altro che articoli con subject uguale a help. L'opposto se scrivi *help*. D'altra parte, non c'è alcun bisogno di scrivere *[Hh][Ee][Ll][Pp]* (case sensitive search) perché Xnews lo fa già in automatico per te (grazie provvidenza). Per rimuovere il filtro della XPAT search è sufficiente usare 'Filter | Remove all filters' (Ctrl+F9) oppure cliccare con il mouse sulla 's' che appare a sinistra, nella barra in fondo alla finestra. Per rimuovere il punteggio (score) assegnato attraverso la XPAT search, usare 'Special | Rescore this window' (Ctrl+R).

Q: ...aggiungere intestazioni personalizzate al messaggio?

Re: Seleziona Compose dal 'Setup dialog'. Inserisci l'intestazione personale desiderata in una nuova riga. Se vuoi un'intestazione che sia 'on' predefinita, precedila con un asterisco. Puoi inserire un'intestazione vuota e passare dei valori all'atto della composizione del messaggio. Un esempio:

*X-No-Bananas: yes
Approved: luutran@geocities.com
*Keyword:

La prima intestazione sarà predefinita 'on' (potrai disattivarla all'atto della composizione). La seconda, Approved, ha già un valore, ma dovrai attivarla di volta in volta se necessaria. Infatti, puoi attivarla al volo e, al limite, cambiare anche e-mail address. La terza intestazione è predefinita 'on', ma non ha alcun valore impostato. All'atto della composizione, potrai inserire qualcosa o lasciarla in bianco. Se la lasci in bianco, Xnews la ignora come se fosse 'off' (perciò, è una buona idea impostare sempre 'on' le intestazioni vuote.) Nota che anche con un'intestazione vuota, hai bisogno di mettere i due punti (:).

Troverai queste intestazioni personalizzate nella rubrica 'Custom' dell'editor window. Puoi anche aggiungere un'intestazione volta per volta usando la scheda Manual headers.

Q: ...usare ROT-13?

Re: ROT-13 è un semplice schema per cifrare il testo in modo che esso non sia immediatamente leggibile. Sposta la posizione di ogni lettera di 13 caratteri nella numerazione alfabetica, così A - M diventa N - Z e viceversa. ROT-13 viene usato per cifrare articoli o parti di essi che possono apparire offensivi o che contengono elementi per svelare una sorpresa (la fine di un film, frasi mordaci, ecc). L'idea è che il lettore debba decifrare l'articolo o parte di esso prima di leggerlo, in modo che non lo possa leggere accidentalmente. Alcune persone cifrano il loro e-mail address al fine di aggirare lo spam.

Ad ogni modo, per decifrare un articolo ROT-13, basta selezionare 'View|ROT-13'. Nell'editor window, puoi (de)cifrare a) il testo dell'articolo; b) l'indirizzo nel campo To: e c) il tuo e-mail address pubblico. Prima devi posizionare il cursore nella casella che vuoi (de)cifrare, poi clicca su ROT-13.

In tutti i casi, puoi anche applicare ROT-13 su una porzione del testo selezionandola con mouse o tastiera.

Q: ...nascondere una colonna nell'elenco?

Re: Non si può, ma puoi portare la sua larghezza a zero. Più o meno è la stessa cosa.

Q: ...salvare un allegato (attachment)?

Re: Xnews, in modo predefinito, non salva gli allegati degli articoli quando li aprite/leggete. Puoi modificare questa caratteristica nella rubrica Files del Setup dialog, spuntando [x] 'automatically save all attachments'. Puoi anche specificare quale tipo di file vuoi che venga automaticamente salvato. Per salvare manualmente un allegato, clicca sull'icona 'attachment' (assomiglia a una siringa), e seleziona l'allegato dall'elenco (potrebbe essere più d'uno). Se l'allegato è già stato salvato, si aprirà automaticamente.

Q: ...spedire allegati (attachments) / binari (binaries)?

Re: Per allegare un file, apri la rubrica Attachments e clicca su Add... Potrai selezionare più file in una sola volta. Alternativamente, puoi trascinare e rilasciare (drag and drop) i files dall'Explorer di Windows.

Opzioni:

  1. post attachments together under one subject: invia ogni allegato in un grande articolo che può essere o meno 'multipart'. Se il titolo del tuo articolo è 'My cats (with pictures)' e tu alleghi due file, in Xnews apparirà così:
    My cat (with pictures) - 2 attachments (~/4)

    * 2 attachments * non sarà visualizzato solo nel caso tu abbia deselezionato 'Show file count in subject'.

    Questa opzione è adatta per inviare meno di tre piccoli allegati in un gruppo di discussione (assumendo che questa pratica sia approvata dai frequentatori). Il tuo testo (editor) sarà fuso insieme all'articolo. Affiancare MIME a questa opzione potrebbe essere una buona soluzione. Non usare questa opzione quando invii grandi files o una serie di numerosi piccoli file.

  2. post attachments separately: ogni allegato come il tuo testo è inviato in un articolo separato (possibilmente multipart). Questo è il modo tipico in cui vengono inviati gli articoli nei gruppi binari. Il tuo testo dovrebbe corrispondere a una breve descrizione dei file che seguiranno. Per esempio, il tuo articolo intitolato 'Some pictures of my cats', con questa opzione produrrà:
    Some pictures of my cats - File 0 of 2
    Some pictures of my cats - File 1 of 2 - socks.jpg (~/2)
    Some pictures of my cats - File 2 of 2 - socks2.jpg (~/4)

    Se deselezioni 'Show file count in subject' non sarà visualizzato * File X of Y. *

    File 0 conterrà il tuo messaggio testuale (descrizione). Se lasci il corpo dell'articolo vuoto (cosa permessa), non ci sarà il file 0.

  3. post attachments separately; text in 0 part of first file: come sopra, ad eccezione del testo che non diventa parte 0 come primo allegato. In Xnews, same as above, except the text part becomes the 0 part of the first attachment. In Xnews, sarà mostrato come qui sotto con il primo file espanso.
    Some pictures of my cats - File 1 of 2 - socks.jpg (~/2)
    Some pictures of my cats - File 1 of 2 - socks.jpg (0/2)
    Some pictures of my cats - File 1 of 2 - socks.jpg (1/2)
    Some pictures of my cats - File 1 of 2 - socks.jpg (2/2)
    Some pictures of my cats - File 2 of 2 - socks2.jpg (~/4)
  4. post attachments separately; text in 0 part of each file: come sopra, ad eccezione del testo che diventa parte 0 in ogni allegato. In Xnews, sarà mostrato come qui sotto con tutti i file espansi.
    Some pictures of my cats - File 1 of 2 - socks.jpg (~/2)
    Some pictures of my cats - File 1 of 2 - socks.jpg (0/2)
    Some pictures of my cats - File 1 of 2 - socks.jpg (1/2)
    Some pictures of my cats - File 1 of 2 - socks.jpg (2/2)
    Some pictures of my cats - File 2 of 2 - socks2.jpg (~/4)
    Some pictures of my cats - File 1 of 2 - socks2.jpg (0/4)
    Some pictures of my cats - File 1 of 2 - socks2.jpg (1/4)
    Some pictures of my cats - File 1 of 2 - socks2.jpg (2/4)
    Some pictures of my cats - File 1 of 2 - socks2.jpg (3/4)
    Some pictures of my cats - File 1 of 2 - socks2.jpg (4/4)

    Ad alcuni piace usare l'opzione 3 o 4. Personalmente preferisco la 2. In ogni caso, evita l'opzione 1 perché inviando file molto grandi potresti andare incontro a qualche discussione (flame).

In generale, evita di usare il MIME dato che alcuni newsreaders non sono in grado di interpretarlo (IIRC, NewsXpress non sanno decifrare articoli in multipart MIME). Come probabilmente saprai, su Usenet, gli articoli che superano una determinata dimensione vengono rifiutati dai server, così articoli molto grandi devono essere frammentati in parti più piccole. Xnews taglia in modo predefinito gli articoli ogni 8000 righe.

Osserva anche regole e convenzioni del gruppo al quale sei interessato. Innanzitutto, assicurati che i binari siano permessi. In seguito, accertati delle regole predominanti (ad esempio dimensione massima dei post, possibilità di usare il MIME, e così via). Soprattutto, fai delle prove in un gruppo di prova dove sono ammessi i binari, per essere sicuro che otterrai il risultato voluto.

Ancora due cose:
1) le opzioni di cui sopra sono da applicare solo ai post su Usenet. Nella posta privata, io preferisco inviare in MIME tutti gli allegati in un solo articolo.
2) quando invii una serie di file, è altamente raccomandabile salvare nell'outbox e inviarli da la. In questo modo, se qualcosa andasse storto oppure se dovessi bloccare l'invio degli articoli, puoi selezionare solo i file da rinviare.

Q: ...tagliare/copiare/incollare testo quando non c'è alcun Edit menu?

Re: Usa la tastiera. Shift+Canc=cut, Ctrl+Ins=copy, Shift+Ins=paste.

Q: ...spedire in crosspost a più gruppi?

Re: Puoi aggiungerne il nome in Newsgroups, separandoli da una virgola. Oppure, puoi fare una selezione multipla nel 'groups window' premendo poi Ctrl+P. Non sai come fare una selezione multipla? Basta tener pigiato il tasto Ctrl e clic, clic, clic.

indietro


5. Le scorciatoie nascoste da tastiera / trucchi

La maggior parte delle scorciatoie sono mostrate sia nel menù, sia elencate nel 'keyboard mapping dialogs' (Alt+K). Queste scorciatoie non sono elencate.

Nella finestra degli articoli:

Space (dis)accoda articoli/thread (place in queue)
Shift+Space (dis)accoda articoli/thread, ma li mette in testa alla coda
Ctrl+Space Accoda tutto ciò in vista (attenzione ai multipart binaries)
Ctrl+Shift+Space Toglie gli articoli dalla coda
Ctrl+Up/Down Ridimensiona la divisione (split) tra articoli e viewer

Nel viewer:

Space scende di pagina
Shift+Space salta al prossimo paragrafo non quotato
Backspace sale di pagina
Invio passa all'elenco degli articoli
Num1..Num9
(tast. num.)
se sei in 'split screen', ti sposta nell'elenco degli articoli, lasciando il cursore nel viewer

Nel groups window:

Ins aggiunge manualmente un gruppo
Del cancella permanentemente i gruppi selezionati
F4 passa tra gruppi sottoscritti e tutti gruppi (all)

In groups window, elenco degli articoli e viewer

Ctrl+Del cancella ogni cosa memorizzata nelle caselle di riepilogo (combo box)

Queste scorciatoie sono nel 'keyboard map' (alt+K).

Nell'elenco degli articoli e nel viewer

Shift+ù / ù salta al precedente / successivo articolo non letto
Shift+. . salta all'articolo precedente / successivo
, salta al primo articolo in coda
è / à salta al precedente / successivo thread
  salta al succ. art. con punteggio (score) >0
ò salta al nuovo articolo dall'ultima archiviazione di intestazioni. Leggi la sezione 'archiviazione'
Alt+Left torna indietro nell'history
Alt+Right vai avanti nell'history

Alcune parole sul rimappamento della tastiera (alt+K).

  • Devi essere nell'elenco dei gruppi (groups window) o nell'elenco degli articoli (articles window) per cambiare le rispettive scorciatoie (shortcuts). Dato che queste due finestre, non sono mai attive nello stesso tempo, assegnare la stessa chiave a due funzioni 'diverse', non arreca danni. Per esempio, puoi assegnare Ctrl+P a 'Post' (nuovo messaggio NNTP) nel 'groups window' e 'Print' (stampa) nell'articles window'.
  • Non assegnare una lettera singola [0..9,a-z] (ovvero senza combinarla con shift) nel 'groups window', dato che questo interferisce con le caratteristiche che già ti permettono di saltare da una riga all'altra nell'elenco semplicemente scrivendo l'iniziale o le prime lettere.
  • Il programma lascia ampia libertà per l'assegnazione dei tasti alle funzioni come preferisci, ma attenzione all'assegnazione di tasti che hanno già certe funzioni nelle normali applicazioni Windows come, per esempio, Ctrl+F6 (salta alla prossima finestra). Fai pure qualche verifica.
  • Non puoi assegnare funzioni il tasto Canc (Del); il controllo delle combinazioni di tasti di Windows non te lo permette. Se vuoi veramente fare questo, edita manualmente il file keys.ini.

indietro


6. Risoluzione dei problemi e FAQ (frequently asked question)

Q: Quando cerco di inviare qualcosa, ottengo l'errore 'bad message ID' dal server.

A: Prova a usare un più breve IDToken (Setup | Identity). Se non funziona, elimina l'IDToken.

Q: Perché la funzione 'get parent' (trova il genitore), quando è operativa, talvolta inserisce l'articolo trovato nell'elenco e talvolta no?

A: Xnews fa affidamento sul numero di messaggi per introdurre gli articoli nell'elenco. Se non mostra l'articolo genitore, significa che il server non restituisce quel messaggio (il server assegna un numero a ogni articolo presente in un gruppo). Non ne so abbastanza sul funzionamento dei news server da spiegarti il perché, ma è proprio così.

Q: Cosa accade quando chiudo l''articles window'? Talvolta il programma aggiorna il conto degli articoli e talvolta no.

A: Xnews considera l'aggiornamento automatico del totale degli articoli con bassa priorità, così se non c'è alcuna connessione disponibile, esso non opera. In ogni caso, puoi forzarlo, premendo F5.

Q: Quando parte un download, la didascalia nella finestra mostra il tempo passato e approssimativamente il tempo rimanente. Tuttavia questo va via dopo pochi secondi. Come posso richiamarlo?

A: Basta cliccare sulla 'progress bar'.

Q: Perché il 'crosspost killing' sembra non funzionare?

A: Perché la cancellazione di articoli crosspostati (crosspost killing) funzioni, devono essere soddisfatte le seguenti condizioni:

  1. Il poster deve avere realmente crosspostato e non semplicemente spedito articoli identici in ogni gruppo. Nel secondo caso, anche presumendo che si tratti di articoli esattamente identici, non esiste nessun modo efficiente per Xnews di fare la stessa cosa.
  2. Xnews si affida all'intestazione 'Xref' per fare 'crosspost killing'. Xref è un'intestazione specifica che dice a) in quale/i gruppo/i l'articolo è stato spedito e b) il numero assegnato all'articolo dal server in ciascuno di questi gruppi. Xnews richiede che il tuo news server sia configurato in modo da trasportare questa intestazione nel suo 'news overview' (NOV) database e che il news server ritorni questa informazione in risposta a un comando 'XOVER'. Non tutti i server fanno questo.
  3. Per una maggiore velocità, Xnews controlla solo i gruppi sottoscritti quando filtra i crossposts. Questo lo rende più veloce di un semplice 'Mark all read' e aiuta anche a tenere sotto controllo la dimensione del newsrc file.

Q: Uso una tastiera straniera (non inglese), ma continuo ad incorrere nella tastiera Inglese nell'uso dell'editor window

A: Apri il Pannello di controllo -> tastiera. Seleziona il linguaggio. Ora disinstalla tutte le tastiere ad esclusione della tua.

indietro


7. A cosa serve...

Q: Mark keep/unkeep? (To keep: predicato verbale tenere)

A: Se non hai attivato l'archiviazione (storage), quando fai un 'catchup', la volta dopo non vedrai le intestazioni che avevi già scaricato. Se invece segni un articolo o un intero thread come 'kept', il programma lo scaricherà nuovamente la volta successiva, nonostante l'impiego di un 'catchup'. Quando segni con 'keep' qualcosa, ad esso automaticamente viene assegnato un alto punteggio (high score) così da essere caricato la volta successiva.

Un esempio dove può essere applicabile è quando hai un 'multipart binary' con alcune parti mancanti. Se fai un catchup, la volta successiva potresti ottenere dal server come nuovi articoli le parti mancanti, ma le parti che hai già non saranno perse e non dovranno essere caricate nuovamente. In questo caso, vuoi tenere quelle parti che hai già con la speranza di caricare il resto la volta successiva.

Se hai l'archiviazione attivata (storage), gli articoli sotto chiave (keep) non saranno cancellati se non nel momento in cui scompariranno dal server. In altri termini, essi sono protetti contro la cancellazione e contro l'eliminazione locale dovuta alla scadenza ('expiry' che hai impostato usanto lo 'Storage Options dialog' o 'F7'). Per cancellare un articolo devi prima togliere la chiave (unkeep)

Puoi impostare il punteggio da assegnare automaticamente agli articoli sotto chiave (keep) usanto Setup | Misc.. Se imposti questo a zero, nessun punteggio sarà assegnato agli articoli sotto chiave.

Q: Mark High score/0 score? (High score: alto punteggio)

A: Questo equivale a segnare qualcosa come importante o non importante. Esso semplicemente assegna un punteggio di 9999 o zero agli articoli o thread selezionati. Puoi cliccare con il tasto destro del mouse sulla colonna 'Score' (punteggio) (o selezionare View | Filter Scores) e selezionare un filtro in base al punteggio al fine di vedere solo gli articoli più interessanti.

Q: Che cosa è il 'catchup'?

A: Tradizionalmente, 'catchup' nei newsreader significa aggiornare il conto degli articoli letti all'ultimo articolo caricato. Se guardi il file .newsrc, vedrai un gruppo di numeri come

1-50,55,65-80.

Ad ogni articolo è assegnato un numero dal server, e questi numeri nel newsrc indicano quali articoli hai letto. Quando applichi il 'catchup', il programma lo imposta a

 

1-<highest-numbered article retrieved>
ovvero al più alto numero degli articoli caricati.

'Catchup' in altre parole significa 'Ok, Ho letto tutto. Non mostrarmi questi articoli la prossima volta'. Nota che puoi anche non avere letto tutti gli articoli, ma potresti comportarti come se lo avessi fatto.

Nell''articles window', ci sono 3 tipi di catchup (tutti chiudono la finestra):

  • Catchup: questo fa ciò che è stato descritto sopra.
  • Catchup and clear keep: questo è uguale al precedente, ma rimuove allo stesso modo anche ogni articolo sotto chiave (keep). Keep è una caratteristica discussa più sopra.
  • Catchup and Kill XPost: Questo equivale a segnare tutto come letto e a chiudere la finestra. Non è la stessa cosa del semplice 'Catchup'. Infatti 'Catchup' si limitava a modificare il numero degli articoli letti, (lo stesso risultato si potrebbe ottenere spostando verso destra la barra di 'Refresh Headers Special'), mentre 'Mark all as read' (segna tutto come letto) passa articolo per articolo segnandolo 'read'. Questo ha due effetti: 1) la scomparsa dei correlati articoli crosspostati degli altri newsgroup. (Sarebbe a dire che se lo stesso articolo è stato crosspostato in un altro gruppo sottoscritto, allora sarà segnato come letto anche in quel gruppo); 2) se hai l'archiviazione attivata (storage), la prossima volta che caricherai le intestazioni, i vecchi articoli saranno segnati come letti. Questa opzione è più lenta delle prime due. Questa lentezza dipende proprio dal numero di articoli da segnare, tenendo in considerazione anche quelli in crosspost.
  • Catchup and Purge: come sopra, ma cancella le intestazioni e il corpo degli articoli anche se avete attivato l'archiviazione (storage).

Finalmente! Sembra abbastanza confuso, vero?

Nel 'groups window', ci sono comandi di 'catchup' e di 'clear keep' separati. Da notare che per fare un catchup, devi almeno aver aggiornato il conto degli articoli. Il comando 'Clear read and keep' invece, svuota completamente il newsrc per i gruppi selezionati, permettendoti così di ricominciare da capo.

Q: Reformat (editor window)?

Spesso, quando replichi a un articolo e inserisci il carattere di citazione (quote) > davanti a ogni riga, queste diventano troppo lunghe e vengono ad essere sovrapposte dall'editor (wrap), mandandole a capo. Per esempio, ti ritroverai in una situazione analoga:

Prima del quote:

>this is a very very very very very long long line,
>isn't it?

Dopo il quote:

>>this is a very very very very very long long
line,
>>isn't it?

Hai due possibilità: 1) allargare la finestra in modo che il testo sia convogliato in una sola riga; 2) cliccare su Reformat. Nel secondo caso, Xnews riformatterà il testo in questo modo:

>>this is a very very very very very long long
>>line, isn't it?

Molto meglio, non credi?

Quando cliccherà su 'Save' o 'Send', Xnews cercherà di comprendere se è presente del testo mal formattato e ti chiederà se vuoi che intervenga, riformattandolo. Se dai 'yes', lo sistemerà e ti farà tornare nell'editor. Dovresti controllare il testo e assicurarti che ogni cosa sia a posto.

Inoltre, puoi riformattare anche solo una porzione di testo selezionandola prima di cliccare su 'Reformat'.

Ho deciso di lasciare la cosa nelle mani dell'utente piuttosto che automatizzarla. Ti ho dato i mezzi, ma ora sta a te rendere migliore Usenet (inoltre hai la responsabilità di preservarmi dalle accuse di aver realizzato un software scadente).

Q: le icone nell'elenco degli articoli.

pallino verde = articolo letto o segnato come tale.
bordo verde = articolo sotto chiave (kept).
nota bianca con righe = icona predefinita per gli articoli
nota bianca senza righe = (solo con l'archiviazione o 'storage')
l'articolo è vecchio, ovvero è stato
archiviato. Quelle con le righe sono
intestazioni nuove caricate l'ultima volta che
hai letto il gruppo.
nota verde = corpo del messaggio presente nella cache. Se lo rileggi,
l'articolo non sarà caricato dal disco (molto veloce)
! = l'articolo ha uno score pari a 9999+
cubo a tre facce = binario incompleto (manca almeno una parte)
cubo a quattro facce = binario completo (sono presenti tutte le parti)
punto interrogativo rosso = articolo non più presente sul server

indietro


8. Suggerimenti e trucchi nascosti

  • Fa attenzione alle finestre pop up.
  • Nel group window, puoi cliccare con il tasto destro sulla colonna 'read' Per caricare uno specifico numero di intestazioni, usa Ctrl+invio invece di aprire il gruppo con il semplice invio.
  • Se vuoi selezionare un articolo senza aprirlo, clicca su qualsiasi colonna diversa da 'subject'.
  • Per filtrare usa il box in basso (per semplicità lo chiamo filtro B). Per esempio, scrivi news.*ex|nx e premi Invio per vedere solo gli articoli che parlano di NX in news.software.readers. Il filtro può anche essere inserito durante il caricamento delle intestazioni.
  • Nell''article viewer, fai doppio click su un URL o una 'reference' di un articolo (message-id) per lanciarle l'URL o per aprire l'articolo correlato alla reference. (Funziona anche con Ctrl+invio quando il cursore è posizionato sull'URL o sul message-id).
  • Talvolta, si può volere saltare al successivo/precedente letto/non_letto/con_alto_punteggio/ecc articolo senza leggerlo realmente (per esempio, potrebbe trattarsi di un binario molto grande che non volete aprire). Per fare questo, attiva lo Scroll Lock (maiuscole). Per tornare alla normalità disattiva lo Scroll Lock.
  • Tenendo premuto Ctrl mentre apri un articolo, il programma caricherà solo l'intestazione. Può essere utile quando vuoi vedere solo l'intestazione di un articolo, magari molto lungo, oppure quando vuoi spedire una replica (followup) a un articolo senza caricarne il corpo.
  • Puoi trascinare newsgroup dal groups window e rilasciarli nei campi 'Newsgroups' o 'Followup-to' dell'editor degli articoli.
  • Se tieni premuto 'shift' mentre clicchi su un server (Server menù), ti ritroverai nel Setup Dialog a modificare le proprietà di quel server.
  • In modalità 'split screen', puoi scorrere l'elenco anche quando il cursore è nel viewer in questo modo: attiva Bloc Lock e usa le frecce del tastierino numerico. Il numero 5 serve in tal caso ad aprire l'articolo selezionato.
  • Puoi impostare Xnews per utenti multipli specificando una differente cartella di start up (Da:) aggiungendo alla riga di comando /d:start-up-dir. (Nota: non usare spazi tra questa switch e il nome della directory. Per esempio,
    c:\bin\xnews.exe /d:c:\user\mary

    dove Mary potrà configurare i suoi personali .ini files, score file, ecc.

indietro


Filtri, filtri ovunque

Per prima cosa vorrei evitare qualsiasi potenziale confusione. In molti news (email) reader, i filtri sono impiegati per eliminare articoli indesiderati (es: spam) invece di marcare gli articoli desiderabili come importanti. In Xnews, fai questo usando lo 'score file'. Xnews usa i filtri per nascondere gradualmente gli articoli visibili. Per esempio, usa il filtro 'Show complete multiparts only' per vedere i soli binari. Gli altri articoli vengono temporaneamente ignorati in modo da ridurre l'elenco da visualizzare. Basta rimuovere il filtro per tornare all'antico.

Hai già visto il box nel groups e nell'articles window, dove puoi battere una stringa per mostrare solo i gruppi o gli articoli il cui nome o titolo contiene la stringa. Nell''articles window', il box in fondo e assomiglia a una casella di riepilogo. (Lo chiamo B filter.) Puoi anche usare un'espressione (regex o regular expression). Inoltre, se vuoi filtrare per autore (from), invece che per titolo (subject), clicca con il tasto destro right alla destra del box (oppure Ctrl+F). La lettera dovrebbe cambiare da S (subject) a F (from). Quando sei in una cartella, puoi anche passare a G (group) e vedere solo gli articoli di un certo gruppo.

Ci sono alcune sottigliezze che dovrei segnalare. Quando inserisci un'espressione, vedrai immediatamente il risultato. L'elenco non è ancora scalettato (thread). Per vedere le relazioni tra gli articoli (thread), premi invio o usa la 'T' vicino al box.
Quest'operazione bloccherà anche il filtro corrente. Se selezioni un altro filtro (vedi sotto), o scrivi un'altra espressione (regex), il filtro sarà applicato sull'elenco corrente, ovvero ciò che rimane nell'elenco. Per rimuovere il filtro corrente, seleziona 'Filter | Undo last filter' o, prima di avere inserito qualcos'altro, usando la barra spaziatrice o il Canc (Del).

Puoi anche applicare direttamente alcuni filtri predefiniti che sono:

  • Hide incomplete binaries: nasconde i binari incompleti (cubo a tre facce)
  • Show binaries only: mostra solo i binari (single o multipart che essi siano)
  • Show queued articles only: mostra solo gli articoli in cosa. Nota: non vengono mostrati articoli in coda che sono già stati processati (ad esempio con decode, read, ecc.)
  • Show cached articles only: mostra solo gli articoli con corpo nella cache, ovvero quelli disponibili sull'hard disk che non devono essere ricaricati dal server.
  • Show new headers only: ha senso solo con l'archiviazione attivata (storage). Quando stai caricando le intestazioni, ti puoi ritrovare a doverne gestire troppe e può risultare arduo individuare quelle nuove. Questo filtro mostrerà solo le intestazioni che non erano presenti l'ultima volta, ovvero dall'ultima volta in cui hai aperto il newsgroup.
  • Show unread articles only: mostra solo gli articoli non letti.
  • Show threads with (new headers/queued articles/unread): è simile ai filtri precedenti, ma il filtro viene applicato per thread, piuttosto che su singoli articoli. In pratica accade che quando selezioni 'Show unread articles only', Xnews rimuove tutti gli articoli letti dall'elenco corrente, poi rimette in ordine logico gli articoli (thread). Invece, con 'Show threads with unread', Xnews rimette in ordine logico l'elenco corrente (ammesso che non fosse già in ordine ovvero sotto 'thread') ed elimina tutti i thread a cui appartengono solo articoli letti. (Gli articoli che non fanno parte di un 'thread', vengono considerati singoli thread per conto loro.) Il vantaggio di filtrare a livello di thread è la possibilità di seguire gli articoli nel loro contesto.

Per rimuovere il filtro e vedere tutti gli articoli, seleziona 'Filter | Remove All Filters' oppure clicca sulla destra del box in fondo alla finestra (lettera S/F/G). Puoi anche rimuovere solo l'ultimo filtro applicato o invertire il filtro.

Aspetta, c'è ancora qualcosa da dire.

Nell'elenco degli articoli, clicca con il tasto destro sulla colonna 'score' per ricavare un menù che permette di filtrare in base a punteggio (score). Le scelte sono:

  • >=9999: mostra solo gli articoli importanti
  • >0: mostra solo punteggi maggiori di 0
  • >=0: mostra solo punteggi non negativi
  • >-9999: mostra solo gli articoli che non sono 'killed'
  • Clear: rimuovi i filtri.

C'è anche un 'filter dialog' (F9) che permette di impostare filtri basati su criteri più complessi. Prima di tutto, scegli sopra quale o quali campi deve essere applicato il filtro, poi inserisci la condizione che preferisci.

Nota che tutti i filtri sono cumulativi, ovvero sono applicati su ciò che appare in elenco, che potrebbe essere il risultato di filtri precedenti e non corrispondere all'insieme degli articoli disponibili. L'eccezione la fa il 'filter dialog', dove spuntando 'Add to existing' puoi scegliere se applicare il filtro sopra quello corrente. D'altro canto, se vuoi applicare il filtro all'elenco originale, devi prima rimuovere il filtro corrente togliendo la spunta.

Alla fine, l'ultimo filtro che hai applicato avrà effetto sugli articoli nuovi quando farai un refresh delle intestazioni. Per esempio, se scrivi B (hide incomplete binaries), poi F5 (refresh), dopo le intestazioni saranno caricate e ordinate nei 'thread', ma i binari incompleti (cubo a tre facce) saranno tenuti fuori e non li vedrai fino a quando rimuoverai il filtro.

Qui c'è un esempio di come puoi usare i filtri: dopo che hai aperto alt.tv.x-files, assumendo che tu abbia archiviato le intestazioni, pigia N. Questo mostrerà solo le nuove intestazioni. Poi nel B box scrivi 'dream.*land' (risulteranno 'dream land' o 'dreamland') e dai invio per vedere gli articoli dell'episodio di X-files chiamato 'Dreamland'. Poi scorri attraverso la lista e segna i threads o gli articoli che ti interessano con il tasto 9. Questo porterà il loro punteggio a 9999. Ora clicca sulla colonna 'score' e seleziona >0 o >=9999 per vedere gli articoli che hai appena segnato e ogni altro articolo automaticamente classificato dal tuo 'score file'.

indietro


10. Organizzare i gruppi sottoscritti in categorie

Puoi organizzare i tuoi gruppi sottoscritti in categorie, come 'binari', 'computer', 'cinema e TV', ecc. (Spiacente non esistono sottocategorie.) Clicca sull'icona 'New Category' oppure usa Alt+Ins(ert) poi sposta il gruppo su di essa. Una categoria è mostrata con una icona che sembra una cartella. Puoi riordinare le categorie e i gruppi trascinando e rilasciando i vari oggetti.

Alcune cose da osservare:

  • Puoi trascinare solo un oggetto per volta.
  • L'oggetto in movimento è sempre inserito dopo quello su cui viene rilasciato. Se vuoi inserirlo davanti invece che dopo, tieni premuto 'shift' mentre lo rilasci.
  • Spiacente, ma non puoi rilasciare una categoria su un'altra categoria.
  • Puoi trascinare un gruppo sopra una categoria. Se vuoi, puoi anche mettere il gruppo davanti alla categoria, tenendo premuto il tasto 'shift' nel rilasciarlo. Se vuoi inserire un gruppo dopo la categoria, devi compiere la stessa operazione e dopo spostare la categoria in alto.

Fa qualche prova.

Puoi collassare o espandere tutte le categorie premendo -/+ sul tastierino numerico (guarda 'Special | Keyboard Mapping). Puoi anche collassare/espandere una singola cartella o categoria premendo invio o cliccando sull'icona.

Puoi cancellare una cartella con Canc (Del). Cancellare una cartella, rimuoverà una categoria, ma non i gruppi in essa compresi che ne saranno così liberati.

Quando ordini l'elenco dei gruppi sottoscritti, solo le cartelle e i gruppi che non sono dentro le cartelle saranno ordinati. Se vuoi ordinare i gruppi dentro le cartelle, dovrai tenere premuto il tasto 'Ctrl' quando cliccherai sulla colonna.

Le cartelle sottoscritte sono separate dal newsrc e salvate in un file con estensione .Xnewsrc (così newsrc resta compatibile all'indietro). Se clicchi sull'icona di refresh nella toolbar, il programma ricarica l'Xnewsrc file e abbandona ogni cambiamento fatto alle cartelle sottoscritte. Questo è per esempio utile dopo che hai ordinato le cartelle e vuoi ritornare nella condizione in cui eri l'ultima volta che le hai salvate.

indietro


11. Archiviazione di intestazioni e articoli

Come ho già detto, Xnews è un newsreader on-line. Esso memorizza gli articoli in una cache durante la sessione corrente. In questo modo quando vuoi ricaricare un articolo, Xnews lo estrae dalla cache invece di interrogare nuovamente il server. Nella configurazione predefinita, quando chiudi la finestra, la cache viene svuotata.

Se invece hai attivato l'archiviazione (storage), potrai trarne vantaggio nel caso in cui tu sia interessato a chiudere un gruppo impegnativo a metà lettura. Da una parte non vorrai fare un cathcup, dato che non lo hai ancora letto, ma dall'altra non hai nemmeno voglia di caricarti nuovamente un sacco di intestazioni. L'archiviazione (storage) è una cache più permanente.

Posizionato nell'articles window, premi F7. Avrai la possibilità di archiviare solo le intestazioni senza corpo, oppure entrambi. Devi solo specificare un tempo di scadenza in modo da purgare gli articoli dopo n giorni. Se selezioni 'never expire', gli articoli verranno comunque rimossi non appena non saranno più presenti nel server.

Per ragioni di praticità, quando un articolo viene rimosso dall'archiviazione, non viene realmente cancellato, ma solo segnato come tale. In questo modo, la dimensione del file rimane la stessa, ma potrai comunque reclamare lo spazio inutilizzato, pigiando F7 e cliccando sulla funzione 'Compact'.

Nota #1: con l'archiviazione (storage), puoi riconoscere le nuove intestazioni da quelle archiviate grazie alle righe nere sopra la loro icona a forma di nota (le intestazioni archiviate hanno un'icona a forma di nota bianca). Premi ` (backquote) [presumibilmente ò nella tastiera italiana] per saltare al prossimo 'nuovo' articolo non letto. Se l'articolo è stato caricato per intero, l'icona è a forma di nota gialla.

Nota #2: sulla toolbar, c'è un icona che indica le opzioni correnti di archiviazione (storage). Clicca su di essa per cambiare velocemente tali opzioni.

indietro


12. Cartelle (folders)

L'archiviazione 'storage' è solo semi-permanente. Gli articoli saranno comunque purgati quando scadranno sul server o quando saranno più vecchi della data di scadenza. Per un'archiviazione permanente degli articoli, usa le cartelle (folders), aka 'mailbox'.

Per organizzare le cartelle, apri il 'folders window' selezionando 'Window | folders' (o Shift+F12). Una volta creata una cartella, puoi trasferire in essa gli articoli per un'archiviazione permanente. Per te, ho già creato una cartella chiamata 'Archive'.

Come con NewsXpress, puoi definire una cartella predefinita dove dovrebbero essere trasferiti gli articoli quando clicchi sul pulsante 'Transfer to folder Archive' presente nella toolbar. Edita Xnews.ini. Sotto la sezione [Misc], imposta Archive= al nome della cartella che tu, in alternativa, hai scelto.

Trucchi avanzati:

  • Puoi modificare la cartella predefinita per gruppo (groups.ini) o per server (servers.ini, ma prima devi creare un nuovo server sotto Setup | Servers).
  • Se vuoi che il programma trasferisca gli articoli in una cartella dallo stesso nome, apri xnews.ini e sotto la sezione [Misc] cambia Archive=pippo in Archive=* (asterisco). La stessa cosa vale per servers.ini e groups.ini.
  • Puoi condividere le cartelle con NewsXpress e Eudora. Apri il 'folders window' (Shift+F12), aggiungi una cartella, poi seleziona 'Folder | Change File' e cerca il file di NewsXpress o Eudora che desideri usare. Nota: Xnews tiene un index file (con estensione .hdr), se ciò che si trova nel .hdr non conbacia con ciò che si trova nel file della cartella (.mbx), Xnews ti fornirà un avviso dicendo che l'index deve essere ricostruito. Questo è del tutto normale.

Le cartelle 'queue'

Dalla versione Y2K-SE è presente un nuovo tipo di cartella chiamata 'queue'. Contrariamente alle cartelle normali, una cartella 'queue' archivia solo le intestazioni quando accodate in essa degli articoli. Dopo, quando vorrai leggere o decifrare gli articoli, Xnews li richiederà al server, come se ti trovassi in un newsgroup.

Cosa puoi fare con questa diavoleria? Puoi usarla come un 'queue' globale. Puoi usarla per caricare binari multipart da server differenti. Dato che puoi sostituire il server corrente con quello che vorresti usare per caricare gli articoli nella cartella 'queue', puoi tirare giù le intestazioni da un server per poi caricarne il corpo con uno differente. Se sei uno di quelli con una connessione dall'estero e il server ti sta rallentando, puoi spostare il download in due cartelle 'queue' separate e caricarlo simultaneamente.

Come esiste una cartella predefinita 'archive', esiste anche una cartella predefinita 'queue'. Puoi impostare questa caratteristica in Xnews [Misc]. Se nulla viene specificato, Xnews crea una cartella 'queue' predefinita chiamata _Queue (puoi anche voler nominare le tue cartelle queue con un prefisso _ per distinguerle da quelle di normale archiviazione). Allo stesso modo, come esiste un comando 'Archive', esiste anche il comando contrapposto chiamato 'QArchive', il quale trasferisce articoli (più precisamente, intestazioni) nella cartella 'queue' predefinita.

indietro


13. Xnews.ini: impostazioni globali

La maggioranza delle impostazioni in Xnews.ini può essere cambiata attraverso il 'Setup dialog'. Tuttavia, ce ne sono diverse che sono fuori dal suo controllo perché il loro significato poteva apparire un po' oscuro o (più probabilmente) perché io sono troppo pigro per aggiungerle al 'Setup dialog'. Devi editare Xnews.ini manualmente per modificare le impostazioni che seguiranno qui sotto. Do per implicito che tu sappia come fare.

In breve:

  • Se qualche impostazione sembra troppo confusa, non è il caso di modificarla.
  • I campi booleani (boolean type) possono essere sia 0 (no) che 1 (yes)
  • Gli interi (integer type) possono essere numeri interi (anche negativi)
  • Il colore (color type) funziona un po' come nell'html; dovrebbe essere una combinazione di tre valori esadecimali nella forma $bbggrr. Per esempio, $FF0000 è blu; $00FFFF è giallo e così via.
  • Alcune chiavi hanno un set di valori possibili, ad esempio (0,1,2) o (0..100)
  • Una stringa è rappresentata solo da numeri e/o lettere. Non deve essere circondata da quote, apici o altro
  • Le lettere non sono 'case sensitive', ovvero a = A, m = M, ...

[Display] section:

key:                ColumnLayOut
type: intero
default: 1
Numero per salvare il layout di colonna. Può essere inserito anche
in groups.ini per avere layout differenti in base al gruppo.

key: DateFmtDay
type: Date format
default: hh:nn
Usato per indicare il tempo alla data odierna

key: DateFmtWeek
type: Date format
default: ddd dd
Usato per date entro una settimana da oggi

key: DateFmtYear
type: Date format
default: mmm dd
Usato per date entro un anno da oggi

key: DateFmtShort
type: Date format
default: dd mmm yyyy
Usato per articoli con date superiori all'anno, %d variabile

key: DateFmtLong
type: Date format
default: dd mmm yyyy hh:nn:ss
Usato nelle finestre di popup, %D variabile

key: DrawTree
type: Boleano
default: 1
Organizza i thread ad albero. Questa opzione è on di default se la
griglia è attivata

key: FixFlashing
type: boolean
default: 1
Serve per prevenire anomalie sullo schermo nello scorrere degli elenchi.
Nel caso avessi dei problemi, porta questo valore a zero.

key: FixWrapOpt
type: {-1,0,1}
default: 1
Corregge il testo mal formattato (effetto fiordo) nel viewer del messaggio.
(-1 = manuale: devi ogni volta invocare esplicitamente il comando;
0 = automatico ma non attivo per default; 1 = automatico e attivo per
default ).

key: GaugeUpdateDelay
type: integer
default: 500
Numero di millisecondi che devono trascorrere prima che la 'progress
gauge' sia aggiornata. Impostate un valore più alto se pensate che la
visualizzazione 'gauge' stia rallentando il vostro download.

key: HideHorzScrollBar
type: booleano
default: 0
Per nascondere la barra di scroll orizzontale nell''articles viewer,
anche se il testo fosse troppo largo per stare nello schermo. Impostalo
a uno per guadagnare spazio in verticale. Potrai comunque scorrere da
sinistra a destra con la tastiera

key: HighLightColor
type: color system
default: color
Il colore di sfondo con cui vengono selezionati gli articoli negli
elenchi. Cambialo se e il colore predefinito non fosse sufficientemente
visibile.

key: HighLightTextColor
type: color system
default: color
Come sopra, ma riguarda il colore del testo durante la selezione.

key: jpeg
type: boleano
default: 1
Attiva o disattiva la visione in linea delle immagini jpeg.

key: MaxThreadDepth
type: intero
default: 20
Massima profondità di indentazione dei thread.

key: Panel1Width
type: intero
default: 140
Width in pixel of bottom left panel in articles window

key: Panel2Width
type: intero
default: 190
Width in pixel of bottom middle panel in articles window

key: ShowTabs
type: boolean
default: 1
Serve per mostrare la 'windows tabs' (la piccola task bar che ti
permette di passare da finestra a finestra).

key: SkipHeaders
type: boolean
default: 1
Durante il caricamento del corpo degli articoli, serve a collocare il
cursore nel viewer DOPO le intestazioni presenti, all'inizio del testo.
(Questo non si applica se è attiva la modalità 'Show all headers' (h))

key: SwitchViewAtThreadEnd
type: boolean
default: 0
Quando sei a schermo pieno, serve a tornare automaticamente all'elenco
quando hai letto l'ultimo articolo di un thread e richiedi l'articolo
successivo. Se è pari a zero, salterà subito al prossimo thread senza
andare all'elenco.

key: TitleBarLayOut
type: {-1,0,1,2}
default: 0
Controlla lo stato della barra presente nell'article viewer:
-1 = nasconde la barra;
0 = due righe (barre dei tool e dei titoli su righe distinte) quando
c'è una X-Face, una riga negli altri casi;
1 = come 0, eccetto per quando a schermo pieno, usa due righe;
2 = usa sempre 2 righe.

key: TreeColor
type: colore
default: grid color
Il colore che viene usato per tracciare l'albero dei thread.
Specificalo mediante la convenzione =$bbggrr (simile al codice
esadecimale presente per i colori nell'html, con le sole
differenze di $ al posto di # e rosso e blu scambiati di posizione.

key: Use24hrClock
type: boolean
default: 0
Mostra il tempo usando le 24 ore, invece di am/pm.

key: ViewerLeftMargin
type: intero
default: 3
Margine sinistro (in pixel) per il viewer. Impostalo a zero senon vuoi
margine.

key: ViewerWordWrap
type: boolean
default: 0
Serve per formattare (wrap) le righe nel viewer in modo predefinito.

key: XFace
type: boleano
default: 1
Attiva o disattiva la visualizzazione in termini grafici dell'header
X-Face

'Date format' accetta questi valori:

d        mostra il giorno come numero senza zero iniziale (1-31)
dd mostra il giorno come numero con uno zero iniziale (01-31)
ddd mostra il giorno come abbreviazione (Sun-Sat o equivalente)
dddd mostra il giorno con il nome completo (Sunday-Saturday o equiv.)
m mostra il mese come numero senza zero iniziale (1-12)
mm mostra il mese come numero con uno zero iniziale (01-12)
mmm mostra il mese come abbreviazione (Jan-Dec o equivalente)
mmmm mostra il mese con il nome completo (January-December o equiv.)
yy mostra l'anno a due cifre (00-99)
yyyy mostra l'anno come cifra completa (0000-9999)
h mostra l'ora senza zero iniziale (0-23)
hh mostra l'ora con zero iniziale (00-23)
n mostra il minuto senza zero iniziale (0-59)
nn mostra il minuto con zero iniziale (0-59)
s mostra i secondi senza zero iniziale (0-59)
ss mostra i secondi con zero iniziale (0-59)
am/pm usa il formato a 12 ore e mostra 'am' o 'pm'
a/p usa il formato a 12 ore e mostra 'a' o 'p'
ampm usa il formato a 12 ore e mostra nel linguaggio locale
l'equivalente di am/pm
/ mostra il separatore di data (varia in relazione alla località)
: mostra il separatore del tempo (varia in relazione alla località)
'xx' caratteri in virgolette singole o doppie sono mostrati come sono

[Misc] section:

key:                 AltServers
type: stringa
default:
Elenco di server alternativi (separati da |) da provare quando per
qualsivoglia ragione un dato articolo non può essere trovato sul server
corrente. Può essere impostato in base al gruppo all'interno di groups.ini.

key: Archive
type: stringa
default: Archive
Nome predefinito della cartella dove sono trasferiti gli articoli quando
usi il pulsante 'archive' nella toolbar. Può essere impostato anche
nel groups.ini (dove ha la precedenza sull'impostazione generale)

key: AutoCollapse
type: boolean
default: 0
Nell'elenco degli articoli, può collassare automaticamente il thread
precedente quando espandi un altro thread (non si applica quando tutti i
thread vengono espansi)

key: AutoResume
type: boolean
default: 1
Serve a provare automaticamente il recupero (resume) nel caso di
un'operazione complessa e automatica (batch) dopo che si è stati
disconnessi. Se stai usando dial-up, questo lavora solo se imposti il
tuo dial per la connessione automatica sulla rete.

key: AutoResumeDelay
type: intero
default: 20 {5..1800}
Numeri di secondi da attendere prima che parta il 'resume' automatico.

key: AutoSaveInterval
type: {5..2000}
default: 0
Salva automaticamente il newsrc dopo lo specifico intervallo espresso in
minuti. Il default zero disabilita l'autosalvataggio.

key: BackUpNewsRC
type: boolean
default: 1
Serve a creare un file di backup (.bak) quando salvi il newsrc.

key: CatchUpButton
type: {0,1,2,3}
default: 0
Definisce quale tipo di catchup assegnare al pulsante di catchup
presente sulla toolbar. (0=Catchup; 1=CatchUp and clear keep; 2=Catchup
and kill xpost; 3=Catchup and purge)

key: CompactPercent
type: {0..100}
default: 30
Percentuale di spazio sprecato che gli articoli cancellati possono
occupare in una cartella prima che Xnews debba automaticamente
comprimere (compact) la cartella in seguito alla chiusura.

key: DecodeOpt
type: {1,2}
default: 2
Quando salvi file binari decifrati: 1 = sovrascrive il file
esistente; 2 = salva sotto un nome differente.

key: DejaPage
type: stringa
default: http://groups.google.com/advanced_group_search
URL da lanciare quando selezioni 'Special | Goto Google News Search'

key: DejaQuery
type: stringa
default: http://groups.google.com/groups?as_umsgid=%m
URL da ricercare attraverso la Google Usenet Search (in precedenza Deja)
per un articolo con un dato Message-ID %m (se non vuoi che questo
avvenga, imposta questo parametro senza alcun contenuto "DejaQuery=")

key: ExpiredScoreOpt
type: {0,1}
default: 0
Cosa fare con i punteggi scaduti (expired scores). 0 = rimozione
automatica automatically; 1 = chiede all'utente.

key: HardKill
type: boolean
default: 1
'hard kill' è attivato per default. Significa che gli articoli con
punteggio <= -9999 non saranno mostrati (Shift+Ctrl+K).

key: LaunchAfterDecode
type: boolean
default: 0
Determina se lanciare i file dopo il decode

key: MaxConnPerServer
type: 1..4
default: 4
Numero massimo di connessioni simultanee permesse da un server.

key: OnLoaded
type: stringa
default:
Una virgola separa un elenco di comandi da eseguire dopo il caricamento
delle intestazioni: Se questo elenco include un ! (punto esclamativo), i
comandi saranno eseguiti solo una volta (invece di ogni volta che fai un
refresh delle intestazioni).

key: OnOpen
type: stringa
default:
Una virgola separa un elenco di comandi da eseguire la prima volta che
apri un 'articles window'

key: OpenNextGroup
type: boolean
default: 0
Serve ad aprire automaticamente il prossimo gruppo dopo che hai fatto un
'catchup' sul gruppo corrente.

key: PromptDecodeDir
type: boolean
default: 1
Serve ad avere il prompt su una directory quando usi 'decode'. 0
significa niente prompt e quindi usa la directory predefinita
(Setup|Files).

key: Queue
type: stringa
default: _Queue
Nome predefinito della cartella in cui sono trasferiti gli articoli
con il comando 'QArchive'. Può essere scavalcato in Groups.ini.

key: QuoteChars
type: stringa
default: >:|]»
Elenco dei caratteri che Xnews considera come caratteri per citare.
Opera in congiunzione con QuoteRegex che determina se una specifica
riga sia o meno citata.

key: QuoteRegex
type: stringa
default: ^\s?\s?\s?[>:|\]»]
Nel viewer, le righe corrispondenti a questa espressione regolare
vengono considerate come citate.

key: ReplyNotify
type: {-1,0,1,2,...}
default: 4
Xnews può evidenziare le repliche ai tuoi articoli. Questo ti permette
di avere più controllo, entro un certo livello di profondità nel
thread, fino a quando Xnews continuerà a evidenziare gli articoli. L'idea
è che la discussione potrebbe divergere e probabilmente dopo qualche
replica, una sull'altra, non sarai più interessato a seguire il thread.
0=disabilitato (non segna nulla); -1=segna ogni replica (followup)
dipendente dal tuo messaggio; 1=segna solo i followup diretti; 2=segna i
followup diretti, più il livello successivo; etc. Default è 4.

key: ScoreFileEditor
type: stringa
default:
Il percorso dell'editor da usare quando selezioni 'Special | Edit score
file'

key: ScoreStoredHeaders
type: boolean
default: 0
Serve a assegnare un punteggio alle intestazioni che sono caricate
dall'archivio (attenzione, 'storage' e non archive!). Nel caso opposto,
lo scoring avrebbe operato sulle intestazioni appena caricate.

key: ThreadScoreOpt
type: {0,1,2}
default: 0
Determina come i vengono trattati i thread nello scoring.
0 = più alto punteggio nel thread;
1 = più alto punteggio in thread, a prescindere dagli articoli con punteggio nullo;
2 = somma di tutti i punteggi nel thread

key: TZ
type: intero
default: system timezone
L'ora locale da GMT espressa in minuti*100/60. Per esempio, PST=-0800;
Adelaide=+0950. Impostalo solo se Xnews sembra assumere valori sbagliati
da Windows.

key: UseSmartDecode
type: booleano
default: 1
Serve per cercare di recuperare il caricamento prematuramente interrotto di
un file multipart, partendo dall'ultima parte caricata con esito positivo,
piuttosto che ricominciare sopra l'intero file.

key XferTimeOut
type: Intero
default: 30
Time out di trasferimento espresso in secondi

Per finire, la sezione [Misc] contiene 'CopyHeadersTemplate', che permette di determinare il formato per il comando 'acaCopyHeaders' (copia le intestazioni selezionate nella clipboard), usando i seguenti codici speciali:

%s subject
%a nome dell'autore
%e email dell'autore
%d data in formato breve
%D data in formato lungo
%g nome del newsgroup
%m Message-ID
%R References
%L numero di righe
%B dimensione in byte
%int dove 0<int<256, codice ascii
%t tab (equivale a %9)
%r CR (equivale a %13)
%n LF (equivale a %10)
%% il simbolo %

Qualsiasi altra cosa viene tratta come normale testo. Originariamente, 'CopyHeadersTemplate' viene impostato a %s%r%n (un subject seguito da reference per riga)

[Compose] section:

key:                 AlwaysXNoArchive 
type: booleano
default: 0
Serve a impostare X-no-Archive = yes in modo predefinito. 0 = no; 1 =
yes.

key: Autorewrap
type: booleano
default: 1
Se il testo quotato debba essere automaticamente riformattato

key: FollowupPrompt
type: {1..3}
default: 3
Avviso per impostare i followup-to quando inviate articoli a più di n
gruppi indicati. Predefinito n=3.

key: GenerateDateHeader
type: booleano
default: 0
Se Xnews debba fornire una data (Date header). Nota: il server potrebbe
comunque sovrascrivere questa intestazione a sua discrezione.

key: KeepCopies
type: booleano
default: 1
Serve a tenere copia degli articoli inviati.

key: SetReplyToInPost
type: booleano
default: 0
Aggiunge automaticamente un'intestazione Reply-to con il tuo reale
email address (private) nei post verso i newsgroup. L'idea è che gli
spammer guardino in apparenza solo i dati restituiti da Xover, i quali
non contengono l'intestazione Reply-to. Così si rende sicuro l'invio
del tuo email address reale nel Reply-to. In questo modo, puoi alterare
l'indirizzo nel campo From: impiegando un fake (spam proof) e
permettendo alla gente di scriverti senza l'assillo di dover correggere
manualmente la tua email.

key: WarnBadWrap
type: booleano
default: 1
Serve ad avvisare che l'articolo che stai inviando contiene righe mal
formattate (badly wrapped) nel testo citato (quoted text)

key: WarnExcessiveQuote
type: {0..100}
default: 60
Indice di testo quotata dal totale permesso prima che tu sia avvisato
per aver citato troppo testo. Esempio: 60 significa che se il totale
delle righe citate ( >quoted ) eccede il 60% del totale delle righe,
Xnews ti avviserà. Imposta questo valore a zero se non vuoi ricevere
alcun avviso.

Per finire, la sezione [Compose] contiene 'MailAttrib', 'NewsAttrib', 'ForwAttrib' che permettono di personalizzare l'introduzione, rispettivamente quando si risponde per mail, followup o forward. Queste sono semplici righe di testo con i seguenti codici speciali:

%a nome dell'autore
%e email dell'autore
%f L'intestazione "From:" completa
%d data in formato breve
%D data in formato lungo
%z data e ora, in formato lungo
%g nome del newsgroup
%m Message-ID
%% il simbolo %

Per esempio, impostandoi 'NewsAttrib' a:

%a <%e> scrisse in %m:

l'introduzione nei followup potrebbe diventare:

John Smith <jsmith@xyz.com> scrisse in <72663.9374@news.xyz.com>:

[PopUps] section:

key:                 ArticleList 
type: stringa
default: acaMarkAllRead,acaMarkAllUnread,acaSelectAll,-
Una virgola separa un elenco di comandi da aggiungere al menù a discesa
'popup' menù dell'elenco degli articoli. Guarda il 'keyboard mapping
dialog' (Alt+K) per vedere l'elenco dei comandi. Usa un trattino per
definire un delimitatore.

key: GroupList
type: stringa
default:
acgSubs,acgUnSubs,acgPost,-,acgCatchUp,acgMsgCount,acgAllMsgCount,acmSaveNewsRC,-
Come sopra, ma serve all'elenco dei gruppi.

key: Viewer
type: stringa
default: acaFollowup,acaMail,acaFollowupMail,acaSaveAs,-
Come sopra, ma serve al viewer.

[Xover] section:

key:                 DefragGapSize
type: Intero
default: 20
Ottiene articoli con un solo XOVER a meno che ci sia una serie di
articoli letti in numero superiore a quanto specificato.
(Quelli letti saranno caricati più tardi). Può velocizzare il comando
Xover adattandolo alle tue specifiche esigenze: se hai una connessione
lenta, oppure il tuo server limita il numero totale di byte, potresti
impostare questo valore verso il basso o disabilitarne la funzionalità
assegnando a DefragGapSize un valore pari a zero. Viceversa, se hai
una connessione dedicata e non hai limiti di banda, puoi impostare
questo valore a qualcosa di alto, come 30. Non impostarlo a valori
troppo alti perché sprecheresti banda scaricando un vasto numero di
header non necessarie. Fa delle prove prima di giungere a una scelta
definitiva.

key: PromptThreshold
type: Intero
default: 30000
Apre automaticamente la finestra XOVER quando entri in un gruppo che ha più
dello specifico numero di intestazioni, in modo da avere la possibilità di
limitarne il numero a tua scelta. Fissa questo valore a zero se non vuoi che
compaia in alcun modo la finestra (sempre attivabile con "Open Special"
(Alt+Invio) del menù contestuale del mouse.

[ToolBars] section:

key:                A1
type: stringa
default: -,bShowAllHeaders,bFixedFont,bRaw,bWrap,-,
bAttach,bFollowUp,bMail,-,bBack,bForw,-,bRef,bNextQ,
bPrevTh,bNextTh,bPrevUnread,bNextUnread,bSkipQuote,-
Elenco di voci separate da virgole che rappresentano i pulsanti presenti
nella barra dei tool presente nella finestra degli articoli. Il simbolo
meno "-" equivale a separatore. Opzionalmente puoi aggiungere un numero
dopo il "-" a significare quando spazio in pixel deve essere predisposto
prima di collocare il pulsante successivo.


key: A2
type: stringa
default: bCatchUp,bStop,bDecode,bRefresh,bArchive,bSend,
bEdit,bStorage,bPurge
Come sopra, ma efficace per la barra sottostante al viewer nella finestra
degli articoli.

Imposta "A1= " e "A2= " se vuoi sbarazzarti di entrambe le barre.

[UserButtons] section:

A esclusivo tuo piacere, puoi personalizzare i tuoi pulsanti. In questa sezione puoi definire i tuoi pulsanti con:

buttonname=command|iconfilename|hint
buttonname è qualsiasi nome vuoi dargli. Nota: per evitare futuri conflitti con ogni pulsante che potrei aggiungere, non chiamare i tuoi pulsanti personalizzati con il prefisso 'b'.
command può essere qualsiasi comando di Xnews presente sull'elenco della finestra di dialogo per le scorciatoie da tastiera. iconfilename punta a un file .bmp o .ico da usare per il pulsante. Usa path e nome file completi. La dimensione delle icone non può superare i 16x16 pixel per i pulsanti nella toolbar della finestra degli articoli e i 20x20 pixel per i pulsanti nella toolbar sottostante al viewer.
hint E' opzionale. E' il testo di aiuto che compare come messaggio popup posizionando il cursore sopra uno dei pulsanti.

Esempio:

[ToolBars] 
A1=bBack,bForw,-,bRaw,bFixedFont,-,u1,u2,-,bAttach,-,bSkipQuote
A2=bCatchUp,bStop,bDecode,bRefresh,bArchive,bSend,bEdit,bStorage,bPurge,u3

Cosa sono u1, u2 e u3? Sono i tuoi pulsanti personalizzati che puoi definire come qui sotto. (Probabilmente vorrai un nome più descrittivo di u1, u2, etc, a te la scelta.)

[UserButtons] 
u1=acvQuoted|d:\delphi\q.ico|Toggle quoted text
u2=acvFixWrap|d:\delphi\fixwrap.bmp
u3=acaFindMissingPartsEx|D:\delphi\findparts.ico|Click me, you won't be sorry
Attenzione: se un comando associato a un pulsante non è applicabile alla finestra corrente, il pulsante non verrà mostrato sulla barra

14. Groups.ini: impostazione in base ai gruppi

Le impostazioni in xnews.ini (Name, Email, etc.) sono essenzialmente globali. E' possibile scavalcarle per gruppi individuali o per insiemi di gruppi. Tuttavia, per farlo, hai bisogno di editare manualmente il file groups.ini.

Il formato di groups.ini è:

[group-expression-1]
impostazione1=valore1
impostazione2=valore2
...

[group-expression-2]
impostazione1=valore1
impostazione2=valore2
...

dove 'group-expression' è un'espressione regolare che farà in modo di applicare le relative impostazioni a tutti i gruppi l cui nomi corrispondano a quell'espressione. Segue un semplice esempio.

[binaries|mp3]
MultiPartThreading=1
FullScreen=1
ID=binuser

Questo significa che vorrai avere threading multipart, schermo pieno e ID 'binuser' ('binuser' viene definito in IDs.ini) in tutti i gruppi con le parole 'binaries' o 'mp3' nel nome.

Se precedi una 'group-expression' con una ~ (tilde), allora quella sezione sarà applicata a tutti i gruppi che NON corrispondono quell'espressione.

Le impostazioni di groups.ini prevalgono localmente su quelle di servers.ini che a loro volta prevalgono su quelle di xnews.ini. Le seguenti impostazioni possono essere personalizzate in groups.ini:

Name 
Email
PublicEMail
IDToken
Organization
SigFile
MultipartThreading
SortOn
SortOrder
ColumnLayout
ExpandAllThreads
FullScreen
AttachDir
DecodeDir
Archive
Queue
NewsAttrib
MailAttrib
ForwAttrib
OnOpen
OnLoaded
AltServers

Attenzione: apri Xnews.ini e da un'occhiata a come sono impostate queste chiavi.

Per esempio, in Xnews.ini puoi dire che vuoi usare il file mysig.txt come signature nella maggior parte dei casi; in Groups.ini, puoi scegliere di usare worksig.txt nei gruppi 'comp' e delphisig.txt quando sei in comp.lang.pascal.delphi.*.

Quindi avremo:

In xnews.ini:

[ID]
Name=my name
; etc.
SigFile=mysig.txt

In groups.ini:

[comp.*delphi]
SigFile=delphisig.txt

[^comp]
SigFile=worksig.txt

Nota che Xnews processa groups.ini in ordine sequenziale e si ferma al valore del primo riscontro (match). Inoltre, non c'è bisogno di replicare le altre impostazioni come nome o email dato che sono semplicemente riprese dai valori presenti in xnews.ini (a meno che, tu non voglia usare nomi o email differenti in base al gruppo a un'insieme di gruppi).

Occasionalmente, puoi invece volere che il programma continui alla sezione successiva. Per fare ciò, aggiungi continue=1 alla sezione corrente. Prendi l'esempio sopra. Supponi che tu voglia usare un set di email, nome, ecc. per tutti i gruppi. Questo trucco lo farà:

[^comp]
SigFile=worksig.txt
Email=qualunque cosa
Name=qualunque cosa
; etc.
continue=1

[comp.*delphi]
SigFile=delphisig.txt
; eredita email, name, etc. dalla sezione comp

Nota: il nome della sezione è di fatto una 'regular expression' (regex). Perché groups.ini sia conforme agli .ini file di Windows, non puoi usare [ ] nella tua regex. In questo caso, non appena sei costretto a usare una combinazione di valori, devi aggiungere una regex = riga. Per esempio, dato che non puoi scrivere:

[delphi[^a]]
...

(riscontra delphi, ma non philadelphia)

Allora, devi scrivere

[compdelphi]
regex=delphi[^a]
...

Intestazioni in base ai gruppi

Definisce intestazioni gruppo per gruppo in deroga alle impostazioni di Xnews.ini.

Esempio:

; si applica ai gruppi alt.*
[^alt\.]
CustomHeadersCount=3
CustomHeader1=X-No-Bananas: yes
CustomHeader2=X-Junk: blah blah
CustomHeader3=*Comments:

Nota: le intestazioni personalizzate vengono ereditate da Xnews.ini e dalle precedenti sezioni di groups.ini, con le intestazioni correnti che sovrascrivono quelle precedenti. Per esempio, se tu hai questo su Xnews.ini:

[Compose] 
CustomHeadersCount=2
CustomHeader1=X-No-Bananas: no
CustomHeader2=X-Test: abc

quando scriverai su un gruppo alt, avrai queste intestazioni

X-No-Bananas: yes 
X-Test: abc
X-Junk: blah blah
Comments:

Talvolta puoi voler cancellare intestazioni ereditate in precedenza (se presenti). In questo caso, hai bisogno di aggiungere NewCustomHeaders=1 nella sezione relativa al gruppo. Così, se avrai questo:

[^it\.discussioni\.pippo$] 
NewCustomHeaders=1

allora it.discussioni.pippo non avrà alcuna intestazione dato che hai eliminato tutte quelle ereditate in precedenza senza definirne di nuove.

Attenzione: puoi definire intestazioni multiple (ad esempio, potrai avere diverse X-Face). Nella composizione dell'articolo, potrai poi scegliere tra queste quale usare.

indietro


15. Plonk file

Il 'plonk file' è un modo veloce per fare fuori un utente noioso. Non è potente e flessibile come lo score file. Non puoi usare regex, così il nome dell'utente o il suo indirizzo e-mail devono corrispondere esattamente (eccetto che per maiuscole/minuscole). Inoltre, è globale (non puoi filtrare per gruppi). In altre parole, è più semplice dello score file nonché più efficiente.

Impiego: mentre leggi un articolo, pigia 'k' per aggiungere l'autore al plonk file. Ti sarà chiesto per un periodo di scadenza. La scadenza è predefinita a 100 giorni dopo di che, il nome sarà automaticamente rimosso. La ragione è che è da considerarsi ottusa la pratica di lasciare permanentemente qualcuno nel plonk file. Probabilmente il seccatore abbandonerà di sua spontanea volontà il gruppo oppure vi sarà costretto o, più probabilmente, modificherà appena il suo nome e/o e-mail. Per queste ragioni, è una buona idea specificare una scadenza (ricorda, quante più voci ci sono nel plonk file, tanto più tempo occorrerà al programma a processarle). Se vuoi realmente lasciare il nome permanentemente nel plonk file, imposta il periodo di scadenza a zero.

Puoi richiamare il plonk file con Ctrl+K. In seguito, puoi aggiungere, rimuovere o modificare le voci presenti. Per cancellare, usa Canc (Del). Per modificare un nome o un'e-mail, clicca con il tasto destro su di esso.

indietro


16. Score file

Xnews ha felicemente adottato il concetto alla base del sistema di scoring di slrn (newsreader per sistemi Unix). Di base, ad ogni articolo è assegnato un punteggio da -9999 a 9999. In modo predefinito, un articolo ha punteggio pari a 0 (neutrale). Gli articoli con punteggio uguale o inferiore a -9999, sono fatti fuori (non li vedrai mai, a meno che tu non abbia 'hard kill' disattivato, perché in quel caso ti saranno mostrati con un'icona a forma di X). Gli articoli con punteggio uguale o superiore a 9999 sono considerati importanti e marcati con l'icona gialla! Leggi scoring.txt per avere maggiori dettagli.

Usare 'Article | Add to score file'

Con la versione 2.02.20, ho aggiunto un dialog box per facilitare l'aggiunta di nuove voci allo 'score file'. Puoi usarlo in due modi: a) puoi lasciare che sia Xnews ad aggiungere la voce; b) fa in modo che Xnews generi un nuovo valore e clicca su 'copy to clipboard'. Dopo, puoi aprire lo 'score file' con l'editor di testo che preferisci e incollare le informazioni in esso usando 'Shift+Ins' o 'Ctrl+v', inserendo anche ogni eventuale cambiamento che vuoi compiere.

Se non basta e vuoi capire meglio come funziona lo score file, leggi scoring.txt. Inoltre, se hai bisogno di conoscere quali sono le intestazioni più importanti, ti consiglio di aprire alcuni messaggi Usenet, selezionare 'View | Show all headers' ed esaminare le intestazioni.

  • From: (da) questa è ovviamente l'identità dell'utente che ha scritto (poster). Di solito, appare nella forma John Smith oppure jsmith@abc.com (John Smith)
  • Subject: titolo dell'articolo.
  • Message-ID: ad ogni messaggio Usenet è assegnato un unico Message-ID. Questa operazione può essere compiuta dal news reader, ma se questo non se ne occupa, sarà il news server a provvedere. Un Message-ID assomiglia a un email address, eccetto che per una parte che è un insieme apparente di lettere e numeri casuali, come questo <736jdh658@news.abc.com>. I segni < e > sono parte del Message-ID.
    Dare un punteggio in base al Message-ID non è solitamente molto utile, ad eccezione di quando vogliamo filtrare i post da un certo dominio (se non si è capaci a filtrare sulla base del NNTP-Posting-Host).
  • References: (referenze) un elenco di Message-ID, separati da uno spazio che identifica la parentela degli articoli. Il primo dell'elenco corrisponde 'solitamente' all'articolo padre, quello che ha probabilmente originato il thread, mentre l'ultimo 'solitamente' corrisponde all'ID del messaggio più prossimo, sarebbe a dire, quello che è stato replicato dall'articolo corrente. Dico 'solitamente' perché nei threads molto lunghi le 'References' vengono spesso rotte o troncante.
    Dare un punteggio (filtrare) in base alle References è un buon modo per fare fuori o dare rilievo a un thread. Se specifichi il Message-ID dell'articolo padre in un thread, in genere riuscirai ad assegnare un punteggio a tutto il thread.
  • Xref: non ogni server include questa intestazione nel suo overview database. In ogni caso, rappresenta un elenco di newsgroup dove l'articolo è stato spedito, seguito dai rispettivi numeri indice assegnati all'articolo in quei gruppi. Ad esempio: mindspring borland.public.delphi.ide:177 borland.public.delphi.misc:187 Questo mostra i due gruppi dove è stato spedito l'articolo. Non ti devi preoccupare dei numeri (Xnews li usa per fare fuori i crosspost). Xnews estrapola l'alias dal server (mindspring nell'esempio) dal campo Xref in modo da salvare un po' di spazio, così tienilo in considerazione se applichi punteggio in base al campo Xref. Tipicamente, Xref si usa per filtrare in uno dei seguenti modi:
    1. assegnando punteggio agli articoli crosspostati in certi gruppi, per esempio, se vuoi fare fuori i crosspost con uno specifico gruppo in modo da evitare le guerre di religione,
    2. contando il numero dei gruppi in crosspost (Xnews usa il numero di volte in cui compaiono i due punti). Il secondo è 'built-in', ovvero fa già parte di Xnews per supportare la cancellazione degli articoli crosspostati in più n gruppi (n è configurabile).

Il comando 'Add to score file dialog' dovrebbe permettere più o meno l'autoapprendimento. Per prima cosa, seleziona una sezione da aggiungere alla nuova voce dello 'score file'. Puoi scegliere da una sezione esistente (prendi spunto da quelle che si possono applicare nel newsgroup corrente) o creare una nuova sezione (la nuova sezione apparirà unicamente per il gruppo corrente; puoi comunque cambiare la 'regex' per superare questo limite).

Dopo, sceglierai se assegnare uno score di 9999, -9999 o altro punteggio. Infine, scegli una scadenza.

Ora arriva la parte più interessante. Affonda il pulsante corrispondente al campo su cui vuoi applicare lo 'score', per esempio From. Valuta cosa il programma fa apparire nei campi attivati. Quel testo è una 'regular expression'. E' per questa ragione che vedi questo carattere '\', ad esempio jsmith@foo\.bar\.com. Ti sono quindi offerte anche una serie di alternative che potrebbero tornare utili (puoi inserire qualsiasi cosa tu voglia).

Il campo 'References' richiede un po' più di attenzione. Puoi selezionare 'this article/top of thread/either', che corrispondono al Message-ID dell'articolo corrente/dell'articolo padre del thread/un altro articolo (foo|bar). In alternativa ai precedenti, puoi anche scrivere un'espressione personalizzata (custom). La casella di riepilogo sottostante contiene due Message-ID. Il primo è il Message-ID dell'articolo corrente, il secondo è quello che appartiene al capostipide del thread. Se l'articolo corrente coincide con il capostipide, ce ne sarà solo uno in elenco.

Ora scegli se applicare AND o OR. Clicca su 'Apply' perché Xnews aggiunga la nuova voce per te nello 'score file' oppure clicca su 'Copy to clipboard' se vuoi editare ed aggiungere personalmente la nuova voce allo 'score file'.

Ok, permettimi di illustrarti un esempio concreto. Diciamo che stai leggendo un thread interessante e vuoi monitorarlo (watch) per il futuro. Usa 'add to score file', seleziona 9999 o specifica uno score positivo insieme a una data di scadenza (il thread non durerà all'infinito o probabilmente tu non sarai sempre interessato). Affonda il pulsante 'References' e seleziona 'matches' dalla vicina casella di riepilogo (probabilmente potresti usare anche matches case). Se sei interessato all'intero thread, spunta 'top of thread' oppure 'either'. Se ti vuoi curare solo delle repliche (followup) all'articolo corrente, seleziona 'this article'.

Come scritto in precedenza, il campo 'References' può occasionalmente rompersi, così per stare tranquilli, puoi usare Subject e il valore booleano OR (se usi AND, lo score non sarà più applicabile sulla parte di thread interessata da un'eventuale cambio di subject e questo potrebbe comunque rappresentare ciò che volevi realmente).

indietro


17. Le espressioni regolari (regular expression)

Ho già menzionato le 'regular expression' in questo documento (abbrev. regex). Una regex è usata per i filtri, per le ricerche all'interno di cartelle e per lo 'score file'. Sarai meravigliato di cosa supporta la sintassi di Xnews nelle regex.

Xnews usa il «Philip Hazel's PCRE (Perl Compatible Regular Expression) package», adattato a Delphi con precisione. Questo significa che hai accesso a un potente motore di regex, e se hai già familiarità con Perl, sei a cavallo. PCRE supporta la maggior parte delle costruzioni in perl regex.

Qui trovi un buon tutorial introduttivo al perl regex: http://virtual.park.uga.edu/humcomp/perl/regex2a.html

Ti raccomando fortemente di leggerlo.

Ho aggiunto una caratteristica per permetterti di provare il motore regex di Xnews e vedere come funziona.
Seleziona 'Special | Test Regex'.

Per conoscere le differenze tra il PCRE e il perl regex, leggi il file pcre.html. Questo documento è rivolto ai programmatori e ti farà venire probabilmente un mal di testa (anche a me). Così, qui c'è un riassunto che potrebbe bastare:

1) Stringhe di lettere, numeri e caratteri diversi da quelli speciali possono corrispondere solo a se stesse.

Esempio:

        color
è corrisposto da tutto ciò contenente la parola color

2) Caratteri speciali

   \     tratta il carattere successivo come carattere normale
. corrisponde a ogni carattere
^ corriposnde all'inizio di una stringa
$ corrisponde alla fine di una stringa
| alternativo
(..) raggruppa
[..] corrisponde uno dei carateri nel set
[^..] non corrisponde uno dei carateri nel set

(i due punti .. corrispondono a ellissi, non due a punti letterali)

Esempio:

        help\.
corrisponde a help seguito da un punto
ca.s
corrisponde sia 'cats' che 'cars'
^test
corrisponde a tutto ciò che comincia per test, ovvero
'testing', 'tester', ma non 'the test'
me$
corrisponde a tutto ciò che finisce per me, ovvero
'see me' ma non 'meter' o 'me and you'
cat|mouse
corrisponde a 'cat' o 'mouse'
dog(s|gie)
corrisponde a 'dogs' o 'doggie'
[aeiou]
corrisponde a una vocale
[a-z0-9]
corrisponde a una lettera o una cifra. Nota come - è
usato per specificare un range.
se vuoi specificare letteralmente un trattino come parte del set
di caratteri, mettilo all'inizio o alla fine, es: [a-f0-9-]
misura a-f, 0-9 oppure trattino.

Nota: quando dico che help\. corrisponde a help seguido da un punto, significa che la regex misurerà con successo una stringa che contiene help seguita da un punto. Di conseguenza, 'please help. Now' coincide benché corrisponda solo la parola 'help'. Invece, la regex ^help\.$ misurerà solo la stringa 'help.' dato che ^ e $ fanno capo all'inizio e alla fine della stringa.

3) Quantità (misura quante ripetizioni)

   *     corrisponde a 0 o più ripetizioni
+ corrisponde a 1 o più ripetizioni
? corrisponde a 1 o 0 rip.
{n} corrisponde a esattamente n ripetizioni
{n,} corrisponde a almeno n ripetizioni
{n,m} corrisponde a almeno n ma non più di m ripetizioni

Esempio:

        ma+
corrisponde a 'ma' 'maaa' 'maaaaaaa'
ma*
corrisponde a 'm' 'maaa'
(yada ){2,}
corrisponde a 'yada yada yada '
foo(and)?bar
corrisponde a 'fooandbar' o 'foobar' ('and' è opzionale).

4) Stenografia del set di caratteri

   \w     corrisponde a una 'parola' a caratteri, lettere, numeri, e '_'
\W NON corrisponde a una 'parola' a caratteri, l'opposto di \w
\s corrisponde a uno spazio bianco (barra, tab, a capo, lf)
\S NON corrisponde a un carattere bianco, l'opposto di \s
\d corrisponde a una cifra
\D NON corrisponde a una cifra

Esempio:

        \(\d\d\d\)\s*\d\d\d[- ]?\d\d\d\d

corrisponde a un numero telefonico americano, ovvero 3 cifre racchiuse in parentesi, seguite da zero o più spazi, un prefisso a 3 cifre, seguito ancora da un trattino, uno spazio oppure nulla di ciò per finire con quattro cifre.

5) asserzione di larghezza zero

Un bel modo per considerare vera una condizione che non corrisponde a un particolare carattere

    \b   corrisponde a una parola di confine
\B corrisponde a una parola che non sta al confine

Esempio:

        \bfoot
corrisponde a 'footer' 'footing' 'a foot' ma non 'afoot'

foot\b
corrisponde a 'afoot' e 'foot.' (il punto non conta
come parte della parola) ma non 'footing'

\bfoot\b
corrisponde a solo la parola intera 'foot'

foot\B
corrisponde a 'footer' ma non 'foot;' cioè ci deve essere
scritto qualcosa dopo foot che sia parte della parola,
altrimenti la condizione non si verifica.

6) Riferimenti all'indietro (back references)

Se il tuo regex contiene una o più subespressioni (..), puoi attribuire più ripetizioni attraverso la subespressione <digit>th con \<digit> [digit sta per cifra, th credo che sia da intendersi come il prefisso generico degli agg. numerali ordinali anglosassoni, 1st 2nd 3rd 4th 5th 6th...]

Esempio:

        (\b\w+\b) to \1
corrisponde a 'man to man' 'hand to hand' '100 to 10000'
il \b\w+\b corrisponde a una parola intera. Le parentesi
( ) salvano la parola e la riportano nella subespressione
#1 (è la prima subespressione nel regex)
\1 si riferisce a ciò che lo precede.
'man to child' non sarà invece corrisposto dato che child
non coincide con man.

Nota: Xnews permette fino a 19 sub espressioni in una regex.

7) Guarda avanti/indietro (look ahead/behind assertions)

   (?=regexp) guarda l'asserzione avanti.
(?!regexp) non guarda l'asserzione avanti.
(?<=regexp) guarda l'asserzione indietro.
(?<!regexp) non guardare l'asserzione indietro.

Esempio:

    \w+(?=\t)
corrisponde a una parola seguita da un tab; il tab non è
incluso nella condizione

foo(?!bar)
corrisponde a ogni incidenza di 'foo' non seguita da 'bar'

(?<!foo)bar
corrisponde a ogni incidenza di 'bar' non preceduta da 'foo'

8) Case sensitivity (sensibilità a maiuscole/minuscole)

In Xnews, il regex è sempre 'case insensitive' o 'caseless'. Nello 'score file', puoi rendere le regex 'case sensitive' specificando Keyword = espressione piuttosto che Keyword: espressione. Nel box di ricerca all'interno delle cartelle, puoi disabilitare il 'case sensitive' spuntando il box 'Match case'.

indietro


18. Riconoscimenti

Desidero ringraziare gli autori delle seguenti componenti/codice/risorse gratuiti che ho usato nella realizzazione di Xnews.

1) TAdvSplitter da parte di Charles Bedard.
2) TBufStream da parte di Lucian Radulescu. Entrambe si possono agevolmente trovare alla Delphi Super Page.
3) X-Face Delphi code by Matthijs Laan http://www.geocities.com/quazar_nl/winface/. Matthijs ha anche un programma che puoi usare per convertire immagini bmp in X-Face.
4) Philip Hazel's Perl-Compatible Regular Expression package.
5) 'Text wrapping code' nella gknsa library (http://www.newsreaders.com/gnksa/wrapping.tar.gz) creata da John Moreno, et al.
6) Per le icone free da windows95.com (http://www.winfiles.com/apps/98/icons.html)(autori vari).
7) Ho anche adottato le icone dei binari e alcune apprezzabili idee di NewsXpress. Spero che Ken Ng non se ne risenta :-)

Desidero anche ringraziare tutti gli utenti (leggi testers) che mi hanno riportato bug e suggerimenti. In particolare, ringrazio Richard Merit per il suo esteso alpha testing, feedback, e di volta in volta, l'aiuto con le Win32 API; John Moreno per avermi segnalato varie violazioni alle RFC e al GKNSA; e Adam Bailey per la recensione sul GKNSA.

Detto questo, sono unico responsabile per tutti i bug e le mancanze di Xnews, sicuramente a esclusione di quando queste possono essere provocate dalla Bill Gates and Co., :)

indietro

========================================================================
Copyright © Luu Tran 1998-2001. Tutti i diritti sono riservati.
http://xnews.3dnews.net
Ultimo aggiornamento: 10 giugno 2001
========================================================================
Il manuale di Xnews di Luu Tran è stato tradotto a cura di Massimo
Cerro che ha cercato di renderne la traduzione quanto più accurata
possibile. I due autori non sono legati da nessun rapporto economico,
ma hanno collaborato limitatamente alla stesura di questa traduzione per
la quale, considerandone lo spirito volontaristico, nessuno dei due può
essere considerato responsabile per errori, omissioni o imprecisioni.

Per segnalazioni e consigli esclusivamente rivolti al lavoro di
traduzione, puoi contattare Massimo Cerro scrivendo a maxbyte@iname.com

Tutti i marchi e prodotti citati,
appartengono ai rispettivi proprietari.
========================================================================

Introduzione allo scorefile di Xnews

(scoring.txt)

Xnews adotta felicemente il concetto di scoring alla base di slrn. Fondamentalmente, a ogni articolo viene assegnato un punteggio da -9999 a 9999. Originariamente, a ogni articolo viene assegnato un punteggio pari a 0 (neutrale). Gli articoli con punteggio pari a -9999 o inferiore vengono cancellati (o almeno non li vedrete più, a meno di non disattivare *hard kill*, nel qual caso vi saranno mostrati con un'icona a forma di X). Gli articoli con punteggio pari a 9999 o superiore saranno considerati *importanti* e segnalati con un'icona gialla.

Xnews assegna un punteggio agli articoli usando le regole da voi specificate nel file score.ini. Questo è un file di testo che potete editare con un semplice text editor (blocco note, ecc.) Spazi, tabulazioni e righe bianche sono ignorate ad eccezione delle keyword e delle espressioni regolari. Lo scorefile è composto da sezioni (come i file .ini). Ogni sezione comincia con una intestazione del tipo:

[nome_gruppo_in_espressione_regolare]

in altre parole, un'espressione regolare contenuta dalle parentesi quadre [ ]. L'intestazione indica a quali gruppi è applicabile la sezione relativa ad essa. Ad esempio:

[.]

indica che questa sezione è applicabile a tutti i gruppi.

[^alt\.binaries]

indica che questa sezione è applicabile a tutti i gruppi che cominciano per alt.binaries.

[babylon|trek]

indica che questa sezione è applicabile a tutti i gruppi contenenti la parola babylon o trek.

Se un'espressione regolare viene preceduta con una tilde (~) (alt+126), allora il suo significato viene invertito specularmente. Per esempio, [~babylon|trek] è applicabile a tutti i gruppi che non contengono né babylon, né trek.

All'interno di ogni sezione, puoi avere una o più regole di scoring. Ogni regola comincia così:

Score: numero

in altre parole, la keyword Score, seguita dai due punti ':', seguiti da uno o più spazi e da un numero intero che può variare da -9999 a 9999.

Ogni regola può essere circostanziata specificando una o più espressioni da corrispondere, in questo modo:

keyword: espressione da corrispondere

Dove keyword è una parola chiave scelta tra:

Message-ID, Subject, From, Xref, Lines, References

Ad esempio:

[.]

Score: -9999
Subject: \$\$\$+

Score: 9999
From: luu.*tran

Le due regole precedenti, sono applicabili a tutti i gruppi. La prima assegna un punteggio di -9999 (in altre parole, kill): articoli che hanno tre o più '$' consecutivi nel subject. La seconda evidenzia come importanti gli articoli il cui autore è uno dei vostri preferiti (ah, il mio ego è insaziabile!).

Se precedi una keyword con ~ (tilde), il suo significato viene invertito. Così,

Score: -1000
~Subject: mulder|sculley

sottrae 1000 punti a ogni articolo il cui subject non contenga le parole mulder o sculley (X-files).

Quando keyword è Lines, l'espressione da corrispondere è un intero che specifica il numero minimo (o massimo) di righe. Per esempio,

[~binaries]

Score: -9999
Lines: 1000
~Subject: faq|rfd|rfc

elimina (kill) gli articoli che non appartengono a un gruppo binaries e che contengono più di 1000 righe (lines) il cui subject non corrisponde a una FAQ, RFC o RFD.

Specularmente si potrebbe usare

[binaries]

Score: -9999
~Lines: 50

che elimina (kill) gli articoli in un gruppo binaries con 50 o meno righe (lines)

Fra l'altro, sto solo indentando queste sezioni al solo scopo di renderle più leggibili; altrimenti non ci sarebbe alcuna differenza. La cosa più importante è che ogni regola o keyword sopra deve apparire in una riga per conto suo. Inoltre, puoi aggiungere commenti inserendo il simbolo percentuale (%) all'inizio della riga.

By the way, I'm only indenting these lines to make it more readable; it makes no difference otherwise. The only important thing is each of the lines above must appear on a single line by itself. Also, you can add comments by putting a percent sign (%) at the beginning of the line.

A livello predefinito, ogni test individuale deve essere corrisposto al fine di applicare l'intera regola di scoring, in altre parole il boleano AND è di default. Invece, se volessi usare il boleano OR, dovresti aggiungere un due punti extra ':' dopo la keyword di scoring. Per esempio,

[^comp\.]

Score:: -9999
Lines: 1000
Xref: advocacy
From: beavis
From: butthead

Elimina gli articoli spediti su gruppi comp che hanno più di 1000 righe (lines) o sono in crosspost presso gruppi advocacy o provengono da beavis o butthead.

Nota che tutte le keyword sono case insensitive, in altre parole considerano alla pari maiuscolo e minuscolo. La stessa cosa vale per le espressioni regolari, in modo da non aver bisogno di scrivere [Ff][Oo][Oo], quando già foo era sufficiente. Se desideri che l'espressione sia case sensitive, devi inserire dopo la keyword di scoring un simbolo di uguale "=" invece dei due punti ':', ad esempio:

[.]

Score: -9999
~Subject= .*[a-z]

elimina ogni articolo che non contenga almeno una lettera minuscola nel subject.

Le sezioni e le regole dentro a ogni sessione sono applicate nell'ordine in cui appaiono all'interno dello scorefile. Ogni articolo viene inizialmente caricato con un punteggio pari a zero. In seguito, in relazione alle regole dal quale verrà processato, il suo punteggio potrà incrementare o decrementare del relativo punteggio ad eccezione di quando la regola presenterà punteggi di -9999 o 9999, nel qual caso il programma assegnerà quel punteggio e terminerà ogni test ulteriore. Se vuoi essere sicuro di assegnare un punteggio diverso da 9999 o -9999, puoi collocare il simbolo di uguale '=' di fronte al punteggio. Per esempio,

Score: =500
From: joey

significa che "se un articolo è stato spedito da joey, allora assegnagli un punteggio di 500 e non tenere più in considerazione regole ulteriori."

Puoi aggiungere una data di scadenza a ogni regola in modo che questa non operi più in seguito. Il formato è

Expires: date

La riga, se presente, deve apparire immediatamente dopo il punteggio da assegnare. Per esempio,

% questa regola scade alla fine del millennio
% (ok, in ogni caso alla fine del 1999 :)

Score: 2000
Expires: 31/12/1999
....

Il formato della data dipende dalle impostazioni locali. E' mm/dd/yyyy per gli americani e dd/mm/yyyy per gran parte dell'Europa.

Se disponi di una sezione vuota, lo scoring per quei gruppi che vengono corrisposti dalla sezione si fermerà in quel punto. Per esempio, se vuoi applicare un punteggio ad articoli appartenenti ai gruppi it.news.*, ma non per it.news.votazioni, puoi fare in questo modo

[^it\.news\.votazioni$]
% questa sezione viene lasciata intenzionalmente vuota. Essa
% previene che le regole successive vengano applicate su it.news.votazioni

[^it\.news]

Score: 2000
......

Lo scorefile di Xnews è molto simile a quello usato da slrn, con queste sole differenze:

  1. su Xnews le espressioni regolari sono case insensitive.
  2. slrn gestisce le intestazioni delle sezioni come espressioni wildcard (? e *), mentre Xnews come vere e proprie espressioni regolari.
  3. Xnews non permette lo scoring di header diverse da quelle menzionate, ovvero Message-ID, From, Subject, XRef, Lines e References.
  4. a quanto ne so, slrn non sfrutta le sezioni vuote con il significato di chiudere il processo di scoring (vedi sopra).

Puoi leggere un'introduzione allo scorefile di slrn qui

http://kwaziwai.cc.columbia.edu/acis/tutor/slrnscore-txt.html

Puoi anche trovare una FAQ allo scorefile di slrn qui

http://kwaziwai.cc.columbia.edu/acis/tutor/slrnscorefile-faq.html

Puoi fare tue le idee della FAQ per realizzare il tuo scorefile, ma tenendo in considerazione le differenze precedentemente citate.

Luu Tran
23 febbraio 1999

scoring.txt tradotto da Massimo Cerro
in data 1 settembre 2000