Newsgroup: it.comp.software.newsreader
Titolo: [Dialog] Proposte per i filtri

Non sarò breve, ma vieto tassativamente di scollare rapidamente fino in
fondo.
Come detto in altro post vorrei proporre alcune cose su Mantis, scrivo
prima qui in italiano per avere la vostra opinione. In parte ne abbiamo già
parlato, ma ho raccolto e quasi ordinato tutto.
Lo dico subito, non ho verificato su Mantis se qualcosa è già stato
richiesto, ho gli occhi che sanguinano e non ce la faccio a leggere troppo.
Però siccome il tutto ha più o meno senso solo nel complesso non mi sento
troppo in colpa. Per questa stessa ragione, leggete fino in fondo prima di
commentare.
Divido le richieste in due, la seconda parte sarebbe quasi superflua nel
caso venisse implementata interamente la prima, ma sarebbe cmq gradevole
avere tutto.
     -----     Parte 1     -----
1) Attenuazione score per articoli già letti
Nel box di dialogo delle viste dovrebbe esserci la possibilità di scegliere
un coefficiente con cui moltiplicare il punteggio degli articoli già letti.
Ogni vista dovrebbe avere il suo coefficiente. Questo non andrebbe a
incidere sul punteggio proprio di ogni articolo, che resta immutato e
visualizzato intero nel pannello degli header, ma solo sui calcoli fatti
per l'ordinamento dei thread (scorehighest e scoreaverage).
Sempre nelle viste si dovrebbe scegliere una soglia minima e una massima di
score (ha un senso in base alla logica che trovate alla fine).
2) Ignore/watch bivalente
Ne avevamo già parlato e perfino l'ottimista Gandalf aveva convenuto che:
| Scherzi a parte, hai ragione. Si potrebbero aggiungere le azioni
| !watchthread, !watchsubthread, !ignorethread e !ignoresubthread,
| lasciando !watch e !ignore a fare quello che si è scelto...
Credo che il codice ci sia già tutto, basterebbe l'interfaccia.
Questo anche nell'uso normale, sarebbe comodo avere accanto a "I" per
ignorare il subthread anche "shift-I" per ignorare tutto, o viceversa.
3) Punteggi a manina
Dalle proprietà del messaggio è possibile assegnare un punteggio a uno
specifico articolo, che viene però annullato dai filtri. Questo dovrebbe
essere invece intoccabile, basandosi sul presupposto che un atto del genere
è sempre più mirato di un filtro che agisce in base alle regole generiche.
4) Scoring rapido sul thread
Ovvero come fare qualcosa di sensato con lo scorefile. In combinazione  con
il punto precedente, si dovrebbe poter alzare o abbassare lo score di un
thread, senza creare regole visibili, come avviene per watch e ignore. Ci
dovrebbero essere almeno due incrementi predefiniti e attivabili da
tastiera con un solo tasto. Il meccanismo sarebbe lo stesso di
watch/ignore: "+" aumenta lo score dell'intero thread e "Shift +" aumenta
quello del subthread. Questo incremento sarebbe ereditabile, come il
watch/ignore. (vedi anche punto 5)
Questa variazione di punteggio andrebbe sommata sia al punteggio del
singolo messaggio, sia a quello derivante dalle regole.
5) Applicazione real time con cache
I precedenti due punti implicano l'applicazione dei filtri ogni volta che
si aggiorna una vista. Ovviamente questo vuol dire che "mostra tutti" su un
PC lento e con un archivio grosso porterebbe via del tempo, ma un
appropriato meccanismo di cache farebbe ricalcolare le regole solo quando
c'è una effettiva variazione delle regole stesse, cosa che con il mio
sistema verrebbe ad essere abbastanza rara.
Il meccanismo sarebbe qualcosa del genere: attualmente AFAIK nel database
c'è un campo "score"; andrebbe sostituito con tre campi, "score",
"deltascore" e "rulescore".
Il primo lo mette a manina l'utente e guai a chi lo tocca, il secondo
rappresenta la variazione propria del thread (punto precedente) e si
propaga come ignore e watch, il terzo è la cache e viene mantenuto e usato
finchè non viene creata una nuova regola che riguarda il gruppo
interessato, caso in cui viene ricalcolato al prossimo aggiornamento della
vista (in pratica quello che avviene adesso per il campo "score").
Quando si genera la vista si sommano semplicemente i tre campi del
database, moltiplicando per il coefficiente di cui al punto 1. Credo che
nell'uso tipico l'impatto sulle prestazioni sarebbe molto basso e cmq
compensato dall'efficienza generale.
6) Blocco esecuzione filtri
Dovrebbe esserci un parametro che blocca l'applicazione di qualunque filtro
successivo. Almeno metto i filtri sul mio FQDN all'inizio, li blocco e non
devo preoccuparmi di quel che segue. Anche l'applicazione dei filtri
sarebbe velocizzata, in qualche misura.
7) Folding & font
L'editor dei filtri è insufficiente. Ho visto che con l'ultima beta ha una
colorazione della sintassi, ma ancora non si possono scegliere i font e
manca il folding che sarebbe utilissimo. Sarebbe una gran cosa anche poter
usare un editor esterno, magari con una facilitazione per gli editor che
non supportano UTF.
     -----     Parte 2     -----
8) Expire
Le opzioni di expire dovrebbero essere:
* data assoluta
* data relativa in giorni a partire dalla creazione
* data relativa in giorni a partire dall'ultima applicazione
  (più esattamente dalla data del post più recente a cui è stato applicato)
* eliminazione automatica del filtro alla scadenza, o solo sua 
  disattivazione.
9) GUI "totale" per gestione filtri
Sono il primo a riconoscere che il file di testo ha i suoi vantaggi, ma
oltre un certo limite è scomodo. Una soluzione completa ed efficiente
prevede oltre a una maschera per la creazione dei filtri, una finestra che
mostra una tabella dei filtri, tipo foglio di calcolo, in modo da poterli
visualizzare in ordine di applicazione, di gruppo, di azione, di punteggio,
di frequenza di utilizzo ecc., nonchè la selezione/modifica di filtri in
massa delle proprietà comuni (tipo alt-enter in esplora risorse).
10) Filtri rapidi con variabili
Si dovrebbero poter creare dei template per i filtri, usando per riempire i
campi le variabili già a disposizione per firme, intro & C. 
A questi template si dovrebbe poter assegnare una scorciatoia da tastiera e
dovrebbero, a scelta dell'utente, mostrare la maschera di cui sopra
precompilata (con focus su "OK") oppure creare il filtro direttamente
(possibilmente entrambe, si sceglie al volo con un tasto modificatore).
11) Colorazione
Nel pannello degli header il colore andrebbe applicato all'header
interessato dal filtro. Ad esempio il numero di linee o la data. Nel caso
questo non sia possibile (filtri sul crosspost, ad es.) si colora come
adesso.
12) Ordine subthread
Sarebbe molto logico e spesso comodo che i subthread fossero ordinati in
base allo score, con lo stesso criterio scelto per ordinare i thread. Non
so se implica notevoli complicazioni nell'algoritmo di sorting, ma mi
piacerebbe, in modo da tenere sempre a galla le risposte che ricevo
all'interno di thread voluminosi e ramificati; capita spesso invece che
prima viene su tutto il resto.
13) Quale filtro?
Dovrebbe esserci un comando con cui risalire ai filtri che sono stati
applicati a un determinato articolo. Chi lo ha avuto sa quanto è utile per
il debug.
14) Prevalenza di ignore e watch sui filtri
Gli ignore o i watch che metto a mano attualmente soccombono sempre alle
regole. Va bene per i watch, altrimenti non funzionerebbe il kill sui
troll, ma non per gli ignore. Se decido di ignorare a manina un thread non
voglio che un !mark derivante da una reola abbia effetto. Dovrebbe esserci
almeno un'opzione generale per decidere chi prevale; molto meglio poter
scegliere filtro per filtro se è scavalcabile o no a mano.
     -----     La logica     -----
Metto le regole sul FQDN. Metto le regole sui subject per cercare i tag o
le parole che presumibilmente mi interessano. Premendo "più" o "meno" alzo
e abbasso al volo lo score dei thread mentre li leggo. In totale con una
manciata di filtri dallo score adeguato ottengo questo ordine della lista
degli header:
+6000 thread a cui partecipo
+2000 thread segnati interessanti a mano
 +500 thread segnati interessanti automaticamente
  +10 thread nuovi
  -20 thread segnati poco interessanti a mano
 -500 thread killati
Con le opportune scelte a livello di soglie min/max nelle viste diventa
facilissimo selezionare solo quello che si vuole.
Il massimo effetto si ottiene nella lettura online, ma anche offline Watch
e ignore viaggiano più o meno automaticamente in base al punteggio e
l'ordine è sempre apprezzabile.
Ci tengo a far notare come il meccanismo del "deltascore" permetta di
ottenere cose non ottenibili con i filtri sul subject: innanzitutto è
indipendente (volendo) dai "was:", non richiede la riapplicazione delle
regole ogni volta che uno crea un filtro nuovo e si propaga consentendo di
agire sui subthread come meglio si crede senza creare una marea di filtri
sui M-ID e References.
Opinioni e suggerimenti?
Ho detto *"vieto tassativamente di scollare rapidamente fino in fondo"*.
Adesso tornate su e leggete per davvero, se no vi rompo il tasto "fine". :)
-- 
Fact of life #15: Heads bleed, walls don't.

 commentare.
Ho letto solo fin qui. :-)
Non ti preoccupare, tanto c'è Enrico Bauer che sa praticamente a
memoria ogni Request su Mantis e aggiunge una nota alle richieste che
sono duplicazioni o sovrapposizioni di altre richieste, indicando il
numero in modo tale che Marcus possa procedere più agevolmente.
-- 
daRkSidE, 30.10.2004 00:16:56

 Ho letto solo fin qui. :-)
Si intende che appena posso, leggo anche il resto del messaggio e cerco
di dare un mio parere.
-- 
daRkSidE, 30.10.2004 17:45:13

 sarebbe velocizzata, in qualche misura.
Per lo score, questo è già possibile. Per le azioni, IIRC, no.
-- 
daRkSidE, 30.10.2004 20:41:55
Foobar: Pink Floyd - Dogs

 Adesso tornate su e leggete per davvero, se no vi rompo il tasto "fine". :)
Nel mio caso, non sarebbe una gran perdita (usato quasi mai).
-- 
daRkSidE, 06.11.2004 03:22:27
[08/10 - Vol. 1] Fabrizio De André: Bocca di rosa

 sui colori impostati, etc.).
In Mantis da parecchio tempo, se non ricordo male, così come la proposta
di eventi OnWatchMessage e OnIgnoreMessage (di questa son sicuro, l'avrò
fatta durante le mie prime scorribande in Mantis).
-- 
Fare Well!    40tude Dialog (2.0.14.1, beta 37): 
http://snurl.com/dialog
G             Free It-Alt Group (it-alt/
free.it
 USG): 
http://www.fiag.it
      ICQ#    News server (gratuito ed anonimo): 
http://www.x-privat.org
  16553733    Interfaccia web per leggere NG ~ 
http://www.mynewsgate.net
GIGAMAIL by X-Privat: 
http://www.x-privat.org/gigamail.php

 Per lo score, questo è già possibile. Per le azioni, IIRC, no.
Sì, con lo stesso metodo: =!watch, =!ignore etc.
Però così facendo non vengono processate solo le altre azioni, mentre le
regole di punteggio funzionano normalmente. È vero anche il contrario, o
non si potrebbero usare «combo» come
|| =+9999 Message-ID "@my.fqdn"
|| !keep Score %= 9999


 regole di punteggio funzionano normalmente.
Avevo capito che non si poteva.


 sui colori impostati, etc.).
Io generalmente sono per l'approccio opposto, gestire le azioni in base
allo score. Però sarebbe utile, senz'altro.


 Per quanto mi riguarda è un no-no.
Cattivo. :)
(non che mi freghi molto, è una richiesta secondaria)


 come file di testo, e quindi a tutte le possibilità che questo offre.
Hamster a dire il vero fa questo (a parte) mantenendo lo scorefile
testuale.
-- 
daRkSidE, 15/11/2004 4.21.16

 "Ignora/segui funziona sui subthread" non va bene?
Già il Ignora/segui non è intuitivo (almeno, per me non lo è mai
stato). La proposta era "funziona solamente sui subthread", che evita
ogni fraintendimento (lane caprine a parte).
-- 
daRkSidE, 15/11/2004 4.24.31

 ogni fraintendimento (lane caprine a parte).
Mi pare perfetto. Poi insomma, uno si legge la guida e capisce, non è che
ogni cosa può essere immediata con due parole.


 Mi pare perfetto.
Anche a me pareva perfetto. <g>
-- 
daRkSidE, 15/11/2004 20.49.39

 testuale.
Uh, davvero? Dove? (Parliamo della Classic o della Playground?)
-- 
Fare Well!    40tude Dialog (2.0.14.1, beta 37): 
http://snurl.com/dialog
G             Free It-Alt Group (it-alt/
free.it
 USG): 
http://www.fiag.it
      ICQ#    News server (gratuito ed anonimo): 
http://www.x-privat.org
  16553733    Le FAQ italiane per 40tude Dialog: 
http://snurl.com/dlgfaq

 Uh, davvero? Dove? (Parliamo della Classic o della Playground?)
Classic (Configura->News: Killfile/Log Settings). Ma presumo tu abbia
sovrastimato quanto io stesso dicendo.
-- 
daRkSidE, 14/12/2004 0.35.07
[06/11 - Before These Crowded Streets] Dave Matthews Band: Halloween