Epub 3 e accessibilità

dubbi su epub 3 e accessibilitàCon molta (troppa) enfasi, qualche tempo fa Eric Freese (membro del EPUB3 Working Group) affermava che mentre in Epub 2 le caratteristiche di accessibilità dovevano essere implementate tramite una combinazione di EPUB e DTBook (non ne conosco uno che se ne sia preoccupato, anzi che sia a conoscenza di questo particolare), con HTML5 non è più necessario usare DTBook perché “accessible by design”.
Se non funziona, è colpa degli editori incapaci. Lo notate il sorrisino, vero?

Cosa succede in realtà? Vediamo qualche semplice esempio. Come ben esposto nella Screen Reader User Survey #4 di WebAIM (maggio 2012), uno dei principali riferimenti per chi usa uno screen reader per leggere un testo restano i titoli, come è facile immaginare.

Lecito aspettarsi che almeno questo importantissimo elemento venga rispettato, vero? Invece no…

L’algoritmo di outline di HTML5 permette di usare  un elemento h1 per ciascun titolo contenuto in una pagina, e il valore del titolo viene ridefinito in relazione al livello di annidamento degli elementi di sezione (section) in cui h1 è posizionato. Anche se le specifiche di HTML “incoraggiano” a usare un solo elemento h1, è permesso l’uso di elementi da h1 a h6 che derivano il rank dal livello di annidamento della sezione.

Per chiarezza:

<h1>Level 1</h1>
<nav>
<h1>Level 2</h1>
</nav>
<section>
<h1>Level 2</h1>
<article>
<h1>Level 3</h1>
<aside>
<h1>Level 4</h1>
</aside>
</article>
</section>

È la stessa cosa di

<h1>Level 1</h1>
<nav>
<h2>Level 2</h2>
</nav>
<section>
<h2>Level 2</h2>
<article>
<h3>Level 3</h3>
<aside>
<h4>Level 4</h4>
</aside>
</article>
</section>

Abbastanza prevedibilmente, Jaws non interpreta i titoli del primo esempio. Peggio, con Jaws 13 succede che un h4 di questo tipo viene interpretato come h2, generando ovviamente una certa confusione nel lettore.

Così, l’unico modo per cavarsela è usare gli elementi da h1 a h6 alla vecchia maniera. Dopo dieci anni di sviluppo di HTML 5 siamo ancora qui. E stiamo parlando del solo markup di base, anzi nemmeno, dei soli titoli. Mah.

Annunci

Indesign, catene di testo ed epub

Indesign permette di esportare gli impaginati in formato epub (sì, anche epub 3, ma non fatelo), ma alcune volte questa azione si conclude in una pena (leggi pain in the ass): il testo esportato è completamente confuso, i brani sembrano disposti a caso ed aver perso la loro sequenza logica, e bisogna eseguire un laborioso processo di copia/incolla/taglia/cuci per sistemare il testo. Perché?
Spesso questo accade perché testo ed immagini sono stati inseriti in frame non concatenati, tracciati manualmente sulla pagina per accogliere del contenuto pensando soltanto alla stampa: in fin dei conti, se a monitor funziona funzionerà anche in stampa. Anni di WYSIWYG ci hanno abituati a questo.
Ma, esportando in epub o altri formati (HTML, doc, qualsiasi formato richieda del contenuto linearizzato) la sequenza logica del testo può andare persa, perché in assenza di precise indicazioni il programma adotterà la strategia più semplice, ovvero esporterà i contenuti così come si presentano a monitor partendo dall’angolo superiore sinistro della pagina verso il basso a destra.
Così, se le colonne fossero tagliate per esempio da un titolo che si estende su più di una di esse, quei contenuti appariranno alla rinfusa. Eventuali immagini inserite finiranno in fondo al documento, e le note meglio non parlarne.

Si può evitare questo pasticcio e inutile lavoro di sistemazioni ed appicciconi utilizzando correttamente gli strumenti disponibili in Indesign.

Prima di tutto, attivate la visualizzazione dei Text Threads: View > Extras > Show Text Threads. Vedrete apparire intorno ai frame che contengono il testo delle particolari icone.

Text Threads visibili in Indesign

I simboli In (rossi) indicano dove fare clic per aggiungere testo in ingresso; analogamente, Out da dove prendere il testo da porre nell’In successivo. Se il testo viene disposto nei frame collegati in questo modo, l’esportazione sarà corretta indipendentemente dalla posizione del frame nella pagina. Quando posto su questi simboli, vedrete il cursore cambiare di forma per indicare l’azione che si sta svolgendo.

E le immagini? Bisognerà ancorarle al testo. Il modo più semplice è posizionare il cursore di inserimento testo nel punto dove l’immagine apparirà, importare l’immagine (o l’oggetto) selezionando File > Place ed utilizzare gli strumenti del menu contestuale che appare facendo clic destro sull’immagine stessa dopo averla inserita (per esempio, per accedere alle opzioni di Fitting,  Effect, Captions, ecc.).

La finestra di dialogo Anchored Object permette di stabilire la posizone dell’immagine rispetto al testo circostante o a particolari punti della pagina (chi ha trafficato un po’ con i CSS riconoscerà immediatamente le opzioni Inline).

Opzioni di posizionamento degli oggetti ancorati.

Se il file viene preparato in questo modo, l’esportazione sarà indolore e vi eviterete una quantità di grattacapi successivi qualsiasi sia il formato di esportazione scelto.

In ogni caso, se ci si trova nella situazione di dover lavorare su documenti complessi e queste operazioni non sono state effettuate in precedenza, il lavoro di editing da svolgere è comunque parecchio. In questa situazione può essere utile ricorrere a strumenti come TextStitcth di Rorohiko Resource, che permette di automatizzare alcune delle operazioni necessarie.

Musica su Second Life: Radio CiBiGiBi

radio cibigibi

Non ricordo di averne mai parlato qui, comunque con degli amici olandesi (la Vio e Jero) ho una internet radio che utilizziamo per trasmettere musica in Second Life nel nostro club,  The Alternative Music Radio CiBiGiBi Club, che è nato inspirandosi al famoso CBGB OMFUG di New York.

Mi interessa parlarne perché è un piccolo progetto per qualche verso stupefacente. L’obiettivo iniziale era smettere di pagare i vari provider di stream Shoutcast per le nostre “performance” e magari riuscire ad avviare una web radio. Sul Marketplace è facile trovare diversi servizi per l’audio, anche a prezzi concorrenziali.

In pratica, uno stream come quello che ci serviva (almeno 30 utenti in contemporanea, 128 kbps stereo, veniva a costare all’incirca 1.500 linden al mese (oggi circa 5 euro), senza però poter fare nulla di diverso dall’avviare un programma sul proprio pc per riprodurre musica. Va bene per un DJ, ma per una radio no.

Dopo un po’ di ricerche, ho individuato un provider che a 8 dollari al mese ci forniva il necessario: spazio FTP illimitato per caricare le canzoni, Auto Dj e programmazione con timer, banda illimitata, servizi vari fra cui analisi degli ascolti (con Google Maps). Ok, proviamo.

La radio è partita, inizialmente solo per le due ore serali che di solito occupiamo al club dopo cena (invece di stare sul divano a guardare la TV, è un bel passatempo). Pian piano la playlist si è arricchita, gli ascoltatori hanno iniziato a usare la radio. Praticamente, dopo un anno di vita siamo stabili da mesi a circa 40.000 connessioni mensili, 8.100 uniche, con un tempo medio di ascolto di un’ora a connessione.

Insomma, per una radio che è nata in un mondo virtuale a me sembra che sia piuttosto reale. Ma la cosa che più mi lascia da pensare è che costa 8 dollari al mese. Un pacchetto di sigarette, cappuccino e brioche.

Io vi consiglio di ascoltare Radio CiBiGiBi: noi siamo convinti che sia terapeutica.

Se desiderate ascoltare la radio nella vostra sim o parcel: http://87.117.193.43:8130

Oppure passate al club e prendete una copia dei nostri freebie: fra gli altri oggetti (jeans, magliette, giacca di pelle, skin, un topo e altro) c’è anche una radio, che si sintonizza su Radio CiBiGiBi.

Cyber Carnaval de Nice, Moya Patrick. DJ Violette and DJ Livio

Second Life si espande su Steam

“Steam, La Piattaforma Ludica On-line Definitiva”

Così si presenta Steam, per chi non conoscesse questa piattaforma che permette di accedere all’istante ai propri giochi preferiti. È in sostanza un portale che distribuisce digitalmente una quantità di giochi sia gratuiti sia a pagamento, offerte, cataloghi e così via (circa 1.500 titoli a Agosto 2012, utenti registrati intorno ai 54 milioni di cui in media 5 collegati).

Dal prossimo mese o giù di lì anche Second Life sarà su Steam. Cosa cambia? Per gli utenti attuali di Second Life nulla, ma i più di 40 milioni di persone che utilizzano Steam saranno in grado di conoscere Second Life con la stessa facilità con cui possono ottenere giochi come Portal o altri.

Certo che per essere una piattaforma morta o giù di lì questa Second Life è proprio bella viva.

Second Life Materials: eccezionale miglioramento grafico in vista

Una delle sfide che i creatori di contenuti devono affrontare in un mondo virtuale è il trade-off tra la ricchezza dei dettagli visivi e la complessità delle geometrie.

In teoria, aggiungendo numerose facce molto piccole a un oggetto un designer potrebbe utilizzare diverse texture per creare dettagli più realistici e raffinate variazioni di luci e ombre (se siete in Second Life, premete Ctrl+Maiusc+R: no, non è Matrix e non dovete prendere pillole, quelle che vedete sono le mesh poligonali che costituiscono Second Life, solo senza le texture).

Tuttavia, aggiungere poligoni in questo modo aumenta rapidamente la dimensione del modello e ovviamente il suo “peso” per il rendering. Le mappe Normal e Specular sono metodi per affrontare questo problema consentendo di mostrare superfici complesse senza, in realtà, modellare geometrie supplementari per ottenere maggior dettaglio.

Una Normal Map è un’immagine in cui i codici colore indicano come il motore di renderering deve riflettere la luce generata da ciascun pixel su una superficie, modificando la direzione su cui il pixel “si affaccia” (immaginate che ogni pixel possa essere convertito in un minuscolo pivot). Ciò significa che i pixel su una superficie semplice possono essere resi affinché mostrino un dettaglio simulato di molto superiore alla alla geometria reale della superficie e il rendering avrà un “peso” decisamente minore. Luce e ombra vengono resi come se la superficie avesse profondità e struttura fisica, simulando rugosità, asperità, e anche bordi e facce aggiuntive.

Lo stesso oggetto senza e con Normal Map.

Analogamente, una Specular Map consente ad ogni pixel di possedere il proprio grado di riflessione, così alcune parti di una singola faccia potrebbero riflettere in modo aggressivo l’ambiente circostante, mentre i pixel adiacenti farlo in modo più leggero.

Lo stesso oggetto senza e con Specular Map.

Gli sviluppatori del viewer open source Exodus stanno realizzando il supporto a Normal e Speculars Map lato client, per il viewer SL, così come alcuni controlli aggiuntivi per la luce riflessa dalle facce. Linden Lab sta sviluppando il supporto lato server, e questo potente strumento sarà disponibile in Second Life.

Progettazione e sviluppo sono in corso. Grande. Nirans Viewer ha già annunciato il supporto al nuovo sistema appena il codice diventerà pubblico.
Con questo progetto e Shining, Second Life si pone ad anni luce dai concorrenti, non ce n’è per nessuno.

Second Life Materials

PDF/UA e WCAG2: mappatura dei requisiti

AIIM (Association for Information and Image Management) ha pubblicato un interessante articolo intitolato “Achieving WCAG 2.0 with PDF/UA” che ha lo scopo di articolare l’allineamento tra WCAG 2.0 e ISO 14289-1:2012 (PDF/UA), lo standard internazionale per la tecnologia PDF accessibili.

Così gli sviluppatori di software in grado di elaborare PDF possono ottenere la conformità alle vigenti criteri di successo WCAG 2.0 tramite implementazioni che seguono la mappatura a PDF/UA. In quanto tale, questa mappatura permette di validare un file PDF in formato PDF/UA secondo i criteri delle WCAG 2.0.

È un work in progress, e verrà mantenuta una change history per tenere traccia di eventuali modifiche e aggiornamenti.

L’articolo contiene anche interessanti informazioni riguardo la corretta versione delle specifiche, ed avvisa che la versione finale corretta FDIS di PDF/UA deve avere in copertina la data 2012-08-01. Avevamo parlato in precedenza di questa gaffe di ISO, ora corretta (il PDF dello standard non era conforme a se stesso, e per alcuni giorni non è stato disponibile).

Ottenere la conformità alle WCAG 2.0 con PDF/UA

I 61 criteri di successo delle WCAG 2.0 vengono mappati in una tabella, e Per ciascun criterio, la tabella indica le sottosezioni applicabili di PDF/UA per i rispettivi criteri di conformità per file e reader (software di lettura.

Vengono fornite inoltre tutte le corrispondenze a ISO 32000-1 (ovvero, PDF 1.7).

Pathfinding e Intelligenza Artificiale in Second Life

Pathfinding in Maze.

Il pathfinding fornisce strumenti per dotare di movimento fluido ed “intelligente” le entità che appartengono alla scenografia e non sono avatar (per esempio, i mostri in un gioco, dei topi in una casa infestata, folletti in una foresta fantasy). Nei giochi, queste entità vengono talvolta chiamate NPC (non-player characters) o mobs (mobile objects).
Fino ad ora, i creatori di contenuti hanno dovuto usare pesantemente lo scripting per emulare un movimento intelligente di questi personaggi. Con pathfinding, diventano disponibili strumenti dedicati che permettono di creare entità che possono muoversi nel mondo secondo criteri definiti. Sono disponibili funzioni LSL per evitare gli ostacoli, muoversi lungo gli spigoli, percorrere salite e discese, e così via.

Il Pathfinding permetterà anche nuovi meccanismi di gioco, per esempio la creazione di cibo che attiri  mostri e animali. Non sarà più tanto semplice scappare agli zombie, siete avvertiti.

Le funzioni LSL di pathfinding permettono di dotare i personaggi di comportamenti, come evitare dinamicamente degli ostacoli mentre vengono svolte attività, fra cui:

  • Evade – fuggire da uno specifico oggetto o avatar. Vedi llEvade.
  • Flee – tentare di spostarsi a una specifica distanza da una precisa posizione. Vedi llFleeFrom.
  • Navigate – spostarsi a una precisa posizione. Vedi llNavigateTo.
  • Patrol – spostarsi su un percorso definito da punti di controllo. Vedi llPatrolPoints.
  • Pursue – inseguire uno specifico oggetto o avatar. Vedi llPursue.
  • Wander – spostarsi casualmente ad una distanza specificata da un preciso punto centrale. Vedi llWanderWithin.

Per sperimentare il pathfinding è disponibile uno speciale viewer, dotato di apposite funzioni. Ovviamente queste funzionalità verranno aggiunte ai viewer standard (per ora ne sono dotati il LL Development Viewer e il NiranV TPV).

Sembra che un po’ alla chetichella il pathfinding sia stato implementato in-world con l’ultimo server rollout, e per chi volesse sperimentare del buon materiale free è disponibile nella classe dedicata a Pathfinding e IA di NCI.

La signorina Alice Gynoid 11001 NR.

Alcuni esempi di pathfinding in Second Life:

Second Life Pathfinding Using Google Apps Engine

Second Life Pathfinding Demonstrator

Pathfinding in Second Life (Beta) at London City

Creare terreni per Second Life e Opensim a partire da immagini realistiche

Un modo perlomeno originale per fare del terraforming in Second Life e Opensim può essere utilizzare immagini prese dalla realtà e trasformarle in file .raw o .r32 da importare come terreni.

Le immagini in tono di grigio 16 bit importate come terrain contengono informazioni codificate nel seguente modo:

  • Il livello dell’acqua in Second Life ha il valore di default 20 metri, che corrisponde a un grigio 20, e l’owner della sim può cambiare questo valore in-world.
  • Second Life usa le informazioni nella height map (il nostro file in tono di grigio) per generare il terreno. Ogni sim può usare una sola height map da 256×256 pixel (che in-world corrisponde a una risoluzione di 1×1 mt (un metro quadro), poiché la sim è grande 256×256 mt; i punti intermedi vengono interpolati), che contiene 256 differenti valori di grigio. Il nero (che ha valore 0) rappresenta l’elevazione minima, e il bianco  (255) la più elevata. Ciascun valore dei pixel comunica esattamente al simulatore la relazione di elevazione con i pixel circostanti.

Per i dettagli su come sia costruito un file .raw valido, potete consultare Tips for Creating Heightfields and Details on Terrain RAW Files. Però, non è obbligatorio usare Photoshop e i canali, può essere tutto molto più semplice usando un programma come L3DT.

Tenendo presenti le indicazioni su esposte, scatenate la vostra fantasia e cercate un’immagine adatta a rappresentare il terreno della vostra sim. Ricordate che l’immagine finale sarà quadrata, e in tono di grigio. Per questo esempio, ho utilizzato una mano.

  1. Scaricate l’immagine individuata sul vostro disco fisso. Se necessario ridimensionatela con il vostro editor di bitmap, non è obbligatorio ma è più comodo per le lavorazioni successive.
  2. Aprite L3DT e selezionate File > Import > Heightfield. Individuate la vostra immagine e fate clic su Apri.
  3. Nella finestra di dialogo Import Height Map che si aprirà, potete se necessario stabilire una diversa scala orizzontale e impostare minimo e massimo dell’intervallo verticale. L’immagine comparirà nella finestra di L3DT.
  4. Fate clic destro sull’immagine e nel menu contestuale che apparirà selezionate Tools > Heightfield editor (3D). In questo modo sarà possibile avere un’anteprima in 3D del terreno, ed utilizzare gli strumenti di editing di L3DT per i necessari aggiustamenti. Ciascun tono di grigio produce un’elevazione diversa, e come minimo sarà necessario utilizzare pesantemente gli strumenti di smooth. Bisognerà fare un po’ di esperimenti per prenderci la mano, ovviamente.

    Probabilmente un po’ di lavoro preparatorio nel vostro programma di editing bitmap per attenuare i contrasti e ammorbidire l’immagine aiuta alla creazione di una heightmap su cui non sia necessario intervenire pesantemente in seguito.

  5. Quando il risultato vi pare soddisfacente, o volete vedere cosa sta succedendo, selezionate File > Export > Export Active Map Layer.  Selezionate Raw come formato del file (R32 per Opensim) e salvate il file.
  6. Aprite il vostro client Second Life, posizionatevi in alto a una certa quota, e con gli strumenti Region/Estate caricate il file del terreno[1. Per fare questi esperimenti, è certamente utile e comodo installare un server opensim standalone].

Aspettate alcuni momenti e vedrete apparire il profilo del vostro terreno.

Una sinistra mano compare nel mare di Opensim.

Sì, lo so cosa stanno pensando i maschietti, certo, potete fare anche quello.

Facendo questi lavori è una buona idea tenere a portata di mano una utility come Bailiwick. Questo programma possiede un’interfaccia molto semplice ma che permette di svolgere diverse attività sui file raw, per esempio definire parcel, permessi, altezza dell’acqua e così via.

 

 

Creare terreni per Second Life e Opensim a partire da cartografia GIS

Le sim possiedono un terreno, che rappresenta in mesh i profili altimetrici che disegniamo con gli strumenti Terrain, se i diritti di terraforming sono attivi.

Come spiegato nel post Terraforming in Second Life con Large 3D Terrain (L3DT), è possibile utilizzare programmi diversi dal client Second Life per creare queste immagini raster, utilizzate per salvare i dati di elevazione di una superficie (pianure, montagne, laghi, ecc.) con maggiore precisione e dettaglio.

Il passo successivo potrebbe essere utilizzare dati altimetrici provenienti da una precisa area della Terra, magari per ricreare una particolare ambientazione, o un luogo che ci è caro, tutto quello che la vostra fantasia vi suggerisce. È possibile? Certo, anche se con un po’ di lavoro.

Strumenti necessari prima di iniziare:

  1. Scaricati ed installati gli strumenti necessari, fate doppio clic sul file srtm41.kmz. Si aprirà Google Earth, e nell’area sinistra del programma potrete notare una sezione denominata SRTM 4.1 (SRTM based Topographic data V4.1).
  2. Fate clic sulla casella di controllo Elevation, e lasciate al programma il tempo necessario per scaricare i dati richiesti. Noterete comparire sotto a Elevation diversi componenti, denominati Data for:un numero e grid:lo stesso numero. Nella parte del monitor rappresentante la Terra comparirà una griglia, che rappresenta i settori in cui la cartografia satellitare è organizzata.
  3. Fate clic su una riga grid a piacere, e notate come il focus della finestra si sposti su quell’area. Sovraimposta alla rappresentazione della Terra, potete rilevare la sigla corrispondente all’area di vostro interesse.
  4. Individuate l’area di vostro interesse, annotate la relativa sigla e reperitela nell’elenco sotto Elevation. Fate un clic sul relativo link grid:numero per essere certi di scaricare i dati desiderati. Se l’area corrisponde, fate clic sul link Data for:numero corrispondente.
  5. La finestra che si aprirà permette di accedere a una griglia più stretta se necessario, e di scaricare i dati ricercati: quelli a noi necessari sono ai link DATA file. Il download può essere problematico, i file sono grossi e i server intasati: armatevi di pazienza.

Dopo aver individuato l’area di vostro interesse, scaricate lo zip relativo nella sezione DATA (Download the DATA tile in zipped ARCASCII format).

Se avete già un’idea dell’area di vostro interesse, potete anche utilizzare l’intefaccia grafica del SRTM Data Search. Non è fascinoso come usare Google Earth ma funziona.

Un’altra fonte di interessanti mappe è il The National Map, anche se il sito è un po’ confuso e limitato agli Stati Uniti. I file in questo caso sono in formato .bil, ma nessun problema: Microdem apre anche questi.

Comunque, una volta in possesso dello zip, scompattatelo in una cartella a vostro piacere.

Avviate Microdem, selezionate File > Open > Open DEM e nell’elenco a discesa Tipo file selezionate ASCII Arc Grid; caricate il file .asc precedentemente scaricato: vedrete comparire la mappa dell’area scelta nella finestra del programma.

La mappa è molto grande, mentre lo spazio su Second Life è ridotto. Nulla vieta di utilizzare tutta la mappa, ma otterrete un terreno molto frastagliato poiché ogni rilievo e avvallamento viene adattato all’area disponibile.

La mappa importata da Google Earth in Microdem

Come potete notare, le opzioni disponibili per elaborare la mappa sono innumerevoli. Mi limito quindi a segnalare che facendo clic destro sulla mappa è possibile selezionare nel menu contestuale che apparirà la voce Edit Image, che apre la mappa direttamente nel vostro programma di editing bitmap predefinito, in cui potete ritagliare l’area di interesse (è soltanto un’opzione veloce fra le mille disponibili, il programma si presta a mille esperimenti per individuare il metodo di lavoro per voi più adatto).

In ogni caso, abbiamo bisogno di ottenere un’immagine in toni di grigio e senza altre informazioni.

  1. Quindi, fate clic destro sulla mappa e selezionate  le opzioni di Grid a Neither, Ok.
  2. Poi, clic destro sull’immagine e selezionate Legends/marginalia. Deselezionate le quattro caselle di controllo sulla destra, clic su Redraw map, e Ok.
  3. Quindi, clic destro sull’immagine, selezionate Display e clic su Elevation. Impostate Display colors a Gray scale, Ok. Ora dovreste avere un’immagine in toni di grigio senza griglie ed etichette, quello che ci serviva.
  4. Per concludere, l’immagine .raw da importare in Second Life (o .r32 per Opensim) dovrà essere quadrata e grande 256×256 pixel. Potete utilizzare gli strumenti di L3DT per rifinire l’immagine ed avere un preview in 3D prima dell’importazione.

Dopo l’importazione, eventuali lavori di completamento potranno essere svolti con gli strumenti Terrain del client Second Life che utilizzate.

Prima di procedere, fate un backup del terreno attuale, che non si sa mai…

 

PDF/UA (ISO 14289-1:2012) disponibile al pubblico

Dopo otto anni di lavoro, da ieri 7 agosto 2012 il testo dello standard ISO PDF/UA (ISO 14289-1:2012) è disponibile al pubblico.

È un passaggio importante per l’accessibilità. Il formato PDF sembra inarrestabile e un documento che faccia da riferimento è fondamentale per lo sviluppo delle tecnologie attuali e future e per l’armonizzazione delle regole.

ISO 14289 ha anche stabilito un record: è il primo standard ISO che parla di accessibilità dei PDF che non è conforme a se stesso. Meglio, il PDF del testo dello standard non supera tutti i punti di controllo. Ok, non è il documento a non essere accessibile, bensì il timbro con la data apposta al momento dell’acquisto su tutte le pagine. No comment.