domenica, dicembre 27, 2015

Piccola recensione di uBlock

UBlock si propone come alternativa ad ADBlockPlus. La sua ragione di essere è quella di usare le medesime liste di regole predefinite che usa ADBlockPlus per filtrare gli oggetti contenuti nelle pagine Web ma di essere molto più efficiente nel confrontare le regole con ogni pagina, consumando quindi meno RAM e CPU.

Non entro nel merito dello assunto fondamentale, cioè se UBlock sia effettivamente più efficiente nel macinare le liste e le pagine rispetto ad ADBLockPlus. Non solo non ho modo di verificare ma non mi serve nemmeno, per quanto scriverò in seguito.

Invece voglio rilevare che esiste un difetto fondamentale nel concetto di entrambe le estensioni. Cioè la dicotomia insanabile tra gli utenti che vogliono installare l'estensione e poi dimenticarsi che esiste, senza metterci mano e quelli che invece installano l'estensione con l'idea opposta e cioè di decidere loro, di volta in volta, cosa bloccare e cosa no dentro i siti che visitano.

Per il primo gruppo le estensioni forniscono un certo numero di liste compilate da terzi che possono essere selezionate una per volta o tutte insieme. Queste liste sono generiche quindi se io visito 20 siti e mi servono cento regole, mi troverò comunque a caricare centinaia di migliaia di regole che non userò mai, che si applicano a siti che non visiterò mai.

Per il secondo gruppo le estensioni forniscono il modo di scrivere le proprie regole, sulla base delle pagine effettivamente visitate.

E' ovvio che le due modalità sono una in contraddizione con l'altra, un ostacolo, un difetto. Se io sono nel primo gruppo tutta le opzioni che l'estensione presenta sono superflue o controproducenti, si traducono in codice che l'autore deve mantenere e che appesantisce il programma. Se io sono nel secondo gruppo non voglio trovarmi liste di terzi predefinite che poi devo disabilitare e tutte gli automatismi predisposti per l'utente ignaro mi stanno tra i piedi, oltre ad essere ancora codice che l'autore deve mantenere e che appesantisce inutilmente il programma.

Idealmente, sia UBlock che AdBlockPlus dovrebbero secondo me essere scorporati in due estensioni ognuna. Una estensione praticamente senza opzioni, con una interfaccia ridotta al minimo, che si limita a caricare le liste precompilate, magari dando la scelta in un elenco di liste. Nel caso di ADBLockPlus, la versione per Chrome assomiglia abbastanza a questo ipotetico programma, dato che praticamente non consente di fare niente altro. L'altra una estensione che invece contiene una interfaccia il più flessibile possibile per ispezionare le pagine visitate e creare le regole di filtro per bloccare le diverse categorie di oggetti. Senza nessuna lista predefinita e nessun automatismo. L'unica cosa che le due estensioni hanno in comune è il "motore" che confronta le regole con il codice della pagina, tutto il resto è necessariamente diverso.

Ora, nel caso di UBlock l'estensione nella sua modalità normale pende molto verso il primo tipo, cioè contiene un elenco di liste, alcune sono pre-selezionate e poco altro. E' assolutamente pessima quando si tratta di scrivere le proprie regole, una interfaccia appena abbozzata e inutilizzabile. Inoltre ha una modalità secondaria "avanzata" che introduce sopra le liste una modalità che definisce "dinamica" e che in pratica invece di basarsi su liste di "stringhe/parole chiave" come "||mario." si basa su liste di "host", cioè di dominii e regole di rete, sul genere dei firewall, cioè qualcosa tipo "corriere.it - block" ma da impostare con una matrice di righe e colonne. Se questa modalità sovrapposta alle liste, col problema di capire cosa ha la priorità su cosa, alla fine incasina parecchio l'aggeggio, serve però ottimamente a dimostrar il punto di cui sopra e cioè che si tratta di due programmi concettualmente differenti, per due gruppi di utenti diversi, mescolati in un ircocervo che finisce per essere un compromesso che scontenta tutti.

A questo punto il pirlotto di turno chiederà "ma tu me la consigli"? Come odio questa faccenda del "consigliare". Io non posso usare uBlock perché non voglio usare le liste predefinite (che in uBlock sono addirittura "hardcoded") e non mi serve la modalità "avanzata - dinamica" sopra queste liste. Continuo ad usare ADBlockPlus perché, pur avendo le due sfighe di consumare abbastanza risorse e della manfrina delle "pubblciità accettabili" che sponsorizzano ADBlockPlus, purtuttavia ha una buona interfaccia per ispezionare le pagine e costruire la mia lista personale di regole, con solo quello che mi serve e niente di più o di meno.

Prossimamente ci saranno grandi cambiamenti in Firefox, la scomposizione del browser in (almeno due) processi separati e l'abbandono delle estensioni tradizionali per passare a estensioni basate su delle API molto simili se non uguali a quelle di Chrome. Staremo a vedere quante e quali estensioni sopravviveranno e come.

12 commenti:

  1. io invece ho abbandonato ad-block plus per tenermi uBlock perchè non volendo mettere mano alle liste (per incompetenza e pigrizia più che altro) il secondo mi è sembrato più leggero.

    RispondiElimina
    Risposte
    1. Non so dire se sia effettivamente più "leggero" nell'uso "di base", cioè caricando una o più liste di terze parti. In ogni caso dovrebbero togliere tutte le funzioni "avanzate". E viceversa, per chi non vuole usare le liste predefinite, la modalità "di base" è inutile.

      Elimina
  2. Idealmente, sia UBlock che AdBlockPlus dovrebbero secondo me essere scorporati in due estensioni ognuna.

    Ma ...
    mostrare una coppia di radio button e permettere all'utente di scegliere quale modalità d'uso scegliere ?
    E nel caso in cui si voglia passare dalle liste pre-compilate caricate in memoria alla gestione manuale per ogni singolo sito, la facoltà di svuotare la memoria ?

    RispondiElimina
    Risposte
    1. No, tu non compri una 500 con un bottone che fa uscire due sci sotto le ruote. Ti compri la 500 e, se ti serve, una motoslitta. Mettere insieme due aggeggi il cui utilizzo è mutualmente esclusivo non ha senso. E' un difetto di progettazione. In parte anche pigrizia nel non volere mantenere due programmi invece di uno.

      Per le liste, sia in ADBlockPlus che in uBlock si possono disabilitare. La "gestione manuale" nel caso di ABP significa scriversi le proprie regole (che volendo sono in aggiunta a quelle predefinite), nel caso di uBlock scrivere le regole a mano è impraticabile perché manca uno strumento decente di ispezione della pagina in oggetto, però c'è una modalità "avanzata" che non usa le "chiavi" delle liste, usa delle regole basate su qualcosa di simile agli "host file", cioè un elenco di "dominii" con le relative autorizzazioni.

      In modalità "base" il funzionamento è analogo, l'unica differenza che non so valutare sarebbe il consumo di risorse a parità di liste caricate.

      Elimina
  3. Risposte
    1. Hardcoded si dice di qualcosa che è scritto nel programma invece che essere demandato all'input dell'utente. Per esempio la funzione "tracking protection" di Firefox è "hardcoded" mentre le due estensioni di cui sopra no, concettualmente sono assimilabili a dei "plugin".

      Elimina
  4. Prossimamente ci saranno grandi cambiamenti in Firefox [ ... ] Staremo a vedere quante e quali estensioni sopravviveranno e come.

    Eh ...
    vedremo ...

    RispondiElimina
    Risposte
    1. Comunque nell'attesa, io uso 150 regole per ABP. I filtri predefiniti contengono centinaia di migliaia di regole. Ognuno.

      Elimina
  5. E che ne pensi di [ <a href="https://www.palemoon.org/>Pale Moon</a> ] ?

    RispondiElimina
    Risposte
    1. I cambiamenti radicali apportati in Firefox lasceranno indietro tutti i progetti che si fondavano sui suoi sorgenti. Mozilla sta derivando verso i comportamenti tipici delle corporation col marketing e dipendenti salariati abbandonando l'approccio di una fondazione che sviluppa progetti open source e che si appoggia su una "comunità" di contributori volontari. E' uno schema abbastanza classico.

      Elimina