======================================================================== 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. ========================================================================
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:
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.
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.
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.
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
articles window
In generale
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:
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.
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.
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)
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.
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
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).
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:
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.
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):
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
c:\bin\xnews.exe /d:c:\user\marydove Mary potrà configurare i suoi personali .ini files, score file, ecc.
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:
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:
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'.
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:
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.
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.
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:
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.
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:
[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.
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.
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.
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.
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.
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).
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:
Esempio:
color è corrisposto da tutto ciò contenente la parola color
\ 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.
* 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).
\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.
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.
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.
(?=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'
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'.
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., :)
======================================================================== 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. ========================================================================
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:
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 1999scoring.txt tradotto da Massimo Cerro
in data 1 settembre 2000