Dissuadere gli utenti di Internet Explorer tramite uno script

Per lungo tempo Internet Explorer è stato in modo assoluto ed incontrastato il browser più utilizzato al mondo. Questo è dipeso principalmente da strategie di preinstallazione aggressive (e blocco della disinstallazione), ma forse non sarebbe un gran problema se Internet Explorer funzionasse decentemente.

Vi spiego che intendo per decentemente: un browser dovrebbe supportare, al momento del rilascio, tutte le tecnologie web già divenute standard de iure e anche magari qualcuna di quelle standard de facto (ma questo è opzionale). Ci sarebbero poi da fare anche molti discorsi sulla sicurezza ma tralasciamo. Internet Explorer è noto per non supportare granché delle migliori tecnologie CSS. Con Javascript sembra andare un po’ meglio solo perché gli autori di Jquery e librerie simili fanno davvero i miracoli per far funzionare tutto, in realtà non è tutto oro quello che luccica. Addirittura bisogna inserire un meta tag nelle pagine per far comportare Internet Explorer (a partire dalla versione otto) in modo un po’ più normale, altrimenti fa apposta a comportarsi male.

Questo cosa implica? Si arriva all’ironica regola che ho inventato e deciso di chiamare del 3+3:

Se ci vogliono 3 giorni per creare e far funzionare qualcosa in un browser standard, ci vogliono 3 mesi per far funzionare la stessa cosa con Internet Explorer.

Sembra una battutina, però è vero, e i problemi sono ancora peggiori.

La situazione attuale

Prima vi parlavo delle date di rilascio e dovremmo fare un altro piccolo approfondimento su questo. Di seguito riporto le date di rilascio ufficiali per le varie versioni di IE:

  • versione 6 – 2001
  • versione 7 – 2006
  • versione 8 – 2009
  • versione 9 – 2011

Secondo Microsoft il 10% delle persone usa Internet Explorer nella versione 6, che è uscita 10 anni fa. Anche se al tempo fosse stato il browser migliore della categoria, ora è comunque un suicidio navigare con quella roba. Figuratevi sviluppare siti che funzionino lì. Lo stato delle cose è grave: si stima che il 40% delle persone usi Windows XP che ha come ultima versione disponibile la 8, vecchia di 2 anni (ma in realtà anche di più).

È la stessa azienda di Redmond che incoraggia le persone ad aggiornare subito il browser, il problema è che lo fa invitando a usare Internet Explorer 8 oppure 9. Se vi state chiedendo che male ci sia, leggete l’articolo Internet Explorer 9 e il supporto ai web standard per rendervi conto che seppur uscito nel 2011 è parecchio indietro rispetto a qualsiasi altro browser che rispetta veramente gli standard (per citarne alcuni Firefox, Safari, Chrome, Opera…).

Tra uno o due anni saremo punto e a capo: molti utenti che usano Internet Explorer e rimangono indietro, con gli sviluppatori web che si strappano i capelli cercando di fare siti web funzionanti.

Lo script dissuasore

Per fortuna, se gestite dei siti web e come me volete evitare di diventare pazzi, dovendo avere anche a disposizione una macchina Windows per fare test esotici e sperare che le cose funzionino, potete offrire ai vostri utenti un’alternativa migliore.

Basandomi sul vecchio script di Explorer Destroyer, nella versione modificata da Xavier, ho ritoccato e sistemato un popup che avvisa gli utenti di Internet Explorer che è consigliabile passare a Firefox, fornendo utili motivazioni, e l’ho racchiuso in uno script PHP di facile utilizzo per chi realizza siti web. Questo non impedisce ai navigatori con IE di vedere il sito (basta cliccare un link e l’avviso sparisce).

Perché Firefox? In realtà si poteva decidere di consigliare alle persone di usare un browser che supporti gli standard (che in parole meno gentili vuol dire “qualsiasi altro browser”), però secondo me è bene consigliare Firefox per almeno 3 motivi:

  • è ragionevolmente diffuso e multipiattaforma, così l’utente può riconoscerlo e usarlo altrove
  • è software libero
  • dando un’indicazione generica (“installa qualcos’altro…”) senza fornire alternative è poco efficace perché molto probabilmente chi usa Explorer non ne conosce e non ha voglia di cercarne una

Il procedimento di installazione e configurazione sul proprio sito richiede 5 minuti, e una volta finito chi naviga con IE riceverà una volta al giorno (oppure ogni tot di giorni a vostra scelta) questo messaggio:

Messaggio visualizzato da Internet Explorer 6

La scelta che ho voluto fare è quella di iniettare il codice nella pagina solo se ad un primo controllo fatto via PHP l’utente usa Internet Explorer. Questo vuol dire che l’HTML non viene “sporcato” se chi naviga usa altri browser, e quindi le pagine sono anche lievemente più veloci da scaricare e visualizzare.

Come installarlo

Come detto prima, lo script richiede:

  • la presenza di PHP
  • l’accesso FTP all’hosting
  • il poter individuare (o generare con PHP) una stringa contenente il giusto tag <body> da passare alla funzione

Per prima cosa avrete bisogno di scaricare l’archivio contenente lo script e un riassunto di queste istruzioni. Potete fare il download da qui e poi dovete caricare la cartella IE nella radice del vostro hosting.

A questo punto la serie di cose da fare è abbastanza semplice.

Se volete, cambiate il valore var daysToSleep = 0; nel codice per impostare quanti giorni di “riposo” deve attraversare l’avviso prima di ricomparire nuovamente.

  • 0 significa che verrà mostrato una volta al giorno
  • -1 significa che verrà mostrato su ogni singola pagina, sempre

Quindi bisogna modificare il file “header” o equivalente del proprio CMS (di solito va fatto nel tema che si utilizza), e inserire al posto del tag <body> il codice seguente, opportunamente adattato:

<?php
// inserisce il semplice tag body per Firefox, il check per Explorer
require(getenv("DOCUMENT_ROOT").'/IE/IEcode.php');
printbody( <ARG> );
?>

Al posto di <ARG> bisogna inserire la stringa del body (un esempio potrebbe essere <body class='prova'>) secondo le convenzioni del linguaggio PHP. Se si vuole inserire un semplice tag senza attributi si può anche lasciare la funzione senza argomento (non una stringa vuota “”).

Salvate le modifiche è tutto, potete provare con qualsiasi browser cambiando il vostro user-agent per vedere se funziona (se non usate IE vedrete male il banner, questo ve lo spiego nel paragrafo seguente). Chi usa Windows può fare la prova direttamente da Internet Explorer senza che sia necessario modificare la configurazione del browser.

Personalizzare il codice e il problema della PNG

Con un minimo di conoscenza di HTML troverete facilmente dove mettere le mani in fondo al file PHP per cambiare il testo della casella gialla. Fate attenzione però se volete cambiare il banner di Firefox con uno degli altri forniti da Mozilla. Vi ricordo infatti che le versioni più vecchie di Internet Explorer non hanno supporto alle PNG trasparenti, e ci sono innumerevoli discussioni e hack riguardo alla risoluzione di questo problema. Personalmente, dato che il banner è una sola immagine, ho optato per quella del filter.

Il codice del banner di Firefox, rispetto alla versione originaria di Mozilla, è il seguente:

<a href='http://www.mozilla.org/firefox?WT.mc_id=aff_en11&WT.mc_ev=click'>
<img src='http://www.mozilla.org/contribute/buttons/120x240bubble_b.png' alt='Firefox Download Button' border='0'
style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true', src='http://www.mozilla.org/contribute/buttons/120x240bubble_b.png'); padding-top: 240px;" />
</a>

Se volete sostituire il pulsante, dovete cambiare solo l’url dell’immagine (che è presente 2 volte come potete notare) e il padding-top dev’essere uguale all’altezza della stessa, perché così Explorer nasconde l’immagine e la ricarica sopra con AlphaImageLoader. Per questo qualsiasi browser normale vi farebbe vedere l’immagine scostata verticalmente. Be’, alla fine l’importante è che funzioni su IE!

Conclusione

La strada verso un web fatto di standard aperti, affermati e condivisi è estremamente importante. Il browser è il software che usiamo tutti i giorni, perciò risulta fondamentale che questo visualizzi le pagine web in un modo corretto e moderno. Nel nostro piccolo possiamo fare qualcosa per far conoscere alle persone un software libero che funziona molto meglio di Internet Explorer e quindi da un leggero contributo a evitare i mal di testa.

Se usate lo script sul vostro sito mi farebbe piacere ricevere un commento per saperlo e se lo ritenere interessante diffondete la notizia.

Abilitare il TRIM per i dischi SSD

Sul forum di Ubuntu lzk87 ha proposto la soluzione a un problema che lo affliggeva da diverso tempo e di cui mi aveva vanamente parlato (dico vanamente visto che non ho mai avuto la minima idea di come aiutarlo, purtroppo). Mi ha fatto piacere sapere che alla fine ha trovato la soluzione e ci ha tenuto a farla sapere anche agli altri. Questo è il motivo per cui mi ha chiesto se potevo aiutarlo a diffondere l’informazione e se posso aiutarlo lo faccio volentieri.

Il TRIM e la soluzione

Per leggere il procedimento completo, con tanto di fonti e approfondimenti potete visitare la guida sul forum. Vi riassumo brevemente cos’è il TRIM: si tratta di un comando che un sistema operativo può dare per azzerare un settore del disco dopo che ha logicamente cancellato un file (cioè dal punto di vista del filesystem). È una cosa che comunemente non viene fatto nei dischi rigidi tradizionali, in sostanza i file sono cancellati ma rimangono in attesa di essere sovrascritti in caso di necessità.

La spiegazione di questo comportamento e i dettagli annessi li potete trovare nel mio talk sul recupero dati. Nelle memorie SSD però il funzionamento interno è completamente diverso. In pratica azzerare ogni volta tutti i settori invece di rallentare le operazioni alla fine permette di mantenere le prestazioni del disco che altrimenti calano drasticamente con il tempo: per questo si rende necessario usare il TRIM (se il filesystem lo supporta, come ext4 fa).

Una nota finale

A mio parere ci può essere un piccolo potenziale svantaggio (o addirittura vantaggio, se la si vede in un altro modo). Azzerare i settori ad ogni cancellazione di qualche file significa rendere impossibile nel modo più assoluto il recupero del file medesimo. Ciò implica che se per sbaglio cancelliamo qualcosa di importante dobbiamo rinunciare a tutte le possibilità offerte solitamente dal recupero dati.

A qualcuno questo potrà piacere, visto che automaticamente impedisce ad altri di appropriarsi di documenti non più salvati se il disco viene rubato, però d’altro canto blocca anche il legittimo proprietario. Purtroppo mi sembra di aver capito che il TRIM sia inevitabile per non perdere prestazioni, però tenete a mente questa cosa.

Rimuovere i risultati di ricerca corrotti in bbPress

Un sito che amministro usa bbPress come piattaforma per il forum. È un gran bel CMS ottimo per le funzioni essenziali, però c’è un bug relativo ai risultati della ricerca. La pagina fornisce i messaggi divisi in due categorie, “recenti” e “rilevanti”, però il problema sorge quando bbPress decide che un messaggio recente debba essere anche rilevante.

Il risultato ottenuto è un link (nella parte dei messaggi rilevanti) completamente corrotto, senza descrizione e duplicato del corrispondente sopra: qualcosa di simile a http://giovani.mathesisvicenza.it/forum/topic.php#post-.

Notate i messaggi 5 e 3

Chiaramente questo link duplicato male non è nulla di utile e risulta anche scomodo: una persona infatti potrebbe tentare di cliccarci sopra e non arrivare da nessuna parte. Per ovviare a questo problema ho provato a pensare a come poter distinguere facilmente gli elementi corrotti da quelli giusti. Sono giunto ad alcune conclusioni:

  • non si può discriminare direttamente l’url, in quanto viene direttamente stampato da una funzione di bbPress, non è salvato nell’array
  • un articolo malformato non ha un contenuto, viene visto come vuoto
  • ogni articolo sano deve avere un contenuto, altrimenti la ricerca non avrebbe restituito nulla

Alla luce di ciò, la cosa migliore mi è sembrata quella di fare una prima scansione dei messaggi rilevanti ed eliminare tutti quelli senza testo. Il codice seguente va inserito nel file search.php del tema da correggere e va prima della riga <?php if ( $relevant ) : ?>:

<?php
foreach ( $relevant as $elementKey => $bb_post ) {
if(!($bb_post->post_text)) unset($relevant[$elementKey]);
}
?>

A questo punto la ricerca lavora alla perfezione e senza doppioni. Se volete, provate pure quella dei Giovani Matematici di Vicenza.

Introduzione alla creazione di siti web con Drupal 7 – video della serata

Clicca qui per mostrare contenuto da Vimeo.
(leggi la privacy policy del servizio)

Prima serata del mini-ciclo di incontri culturali pre-estivi sull’informatica e il software libero organizzati dal Gruppo Utenti Gnu/Linux di Bassano del Grappa.

Gli appuntamenti spaziano dal 1 al 29 giugno 2011 a cadenza bisettimanale.

Clicca qui per maggiori informazioni!

Altri tre incontri di informatica libera 2011 a Bassano del Grappa (VI)

Ricordate che vi avevo parlato dell’inizio un po’ timidino dei talk precedenti? In realtà avevo parlato presto, perché nonostante la prima serata avesse riscontrato un’affluenza modesta, gli incontri successivi hanno riscosso molto più successo e le persone che hanno partecipato hanno anche mostrato l’interesse per ulteriori serate. 🙂

Per questo motivo al Gruppo Utenti GNU/Linux di Bassano del Grappa abbiamo deciso di organizzare altri incontri di divulgazione a tema informatico. Le prime 3 serate si svolgeranno prima delle vacanze estive per poi continuare con molti altri incontri (probabilmente otto) a settembre. In queste piccole conferenze verranno coperti diversi aspetti di base e intermedi dell’informatica, con particolare riguardo al software libero.

Gli incontri sono dedicati principalmente ad un pubblico di non esperti che vogliano approfondire le proprie conoscenze. Si svolgeranno a cadenza quindicinale e avranno luogo al Centro Giovanile di Bassano del Grappa, in via Ognissanti 4, nella saletta C.

L’ingresso è libero e gratuito.

Segue il programma dei primi incontri (quelli che partono a settembre saranno resi noti in seguito), se cliccate sui titoli potete vedere i rispettivi video:


Introduzione alla creazione di siti web con Drupal 7 – 1 giugno, 20.45 ~ 22:45

Difficoltà: 2/3 – Mauro Dalla Costa

Drupal 7 è un gestore di contenuti (CMS) che permette di realizzare siti web in modo facile e intuitivo. Tramite un’interfaccia semplice e molti moduli e temi già disponibili consente di poter lavorare in autonomia senza essere programmatori.

Arch Linux: installazione e uso – 15 giugno, 20.45 ~ 22:45

Difficoltà: 3/3 – Claudio Ferronato

Arch Linux è una distribuzione molto leggera e personalizzabile che consente di esplorare a fondo ogni aspetto del sistema operativo. Durante la serata verrà illustrata l’installazione passo per passo e fatta una breve panoramica della distribuzione.

Montaggio video con OpenShot – 29 giugno, 20.45 ~ 22:45

Difficoltà: 1/3 – Andrea Lazzarotto

OpenShot è uno degli editor video non lineari più semplici da usare in piattaforma Linux, ed allo stesso tempo fornisce numerosi effetti e funzionalità avanzate oltre a supportare una vasta gamma di formati di file.


Io mi auguro che si ripeta la nutrita partecipazione già vista da tutta la provincia di Vicenza (e perché no, anche da fuori): gli argomenti sono sempre variegati, interessanti e alla portata di tutti. 🙂

Se avete amici o conoscenti di queste zone vi invito a diffondere la notizia e spero di vedervi alla serata su OpenShot. 😛

Ridai vita al tuo vecchio PC – video della serata

Clicca qui per mostrare contenuto da Vimeo.
(leggi la privacy policy del servizio)

Settima serata del ciclo di incontri culturali sull’informatica e il software libero organizzati dal Gruppo Utenti Gnu/Linux di Vicenzasezione di Bassano del Grappa.

Gli appuntamenti spaziano dal 9 febbraio al 18 maggio 2011 a cadenza bisettimanale.

Clicca qui per maggiori informazioni!

Recupero dati fai da te – video della serata

Prima di lasciarvi al video volevo dire due cose brevemente. Quando ho fatto il talk ho cercato di disporre il proiettore in modo che la superficie proiettata fosse maggiore. Ci sono riuscito ma si potrebbe ancora migliorare forse. 🙂 Inoltre quella sera sinceramente ero parecchio stanco avendo fatto l’esame di inglese nel pomeriggio e questo un po’ s’è visto.

Per quanto riguarda il montaggio, mi è stato fatto notare che i rumori di fondo si sentivano abbastanza, perciò ho proceduto alla rimozione del rumore e a una amplificazione successiva perché il volume era parecchio diminuito. Ciò significa che l’audio non è perfetto, ma dovrebbe essere meglio di prima. Portate pazienza se la “sigla” è a volume più alto del resto. Buona visione. 😉

Aggiornamento: dimenticavo di mettervi le slide. Attenti che il file è pesante!

Download PDF – 13MB

Clicca qui per mostrare contenuto da Vimeo.
(leggi la privacy policy del servizio)

Sesta serata del ciclo di incontri culturali sull’informatica e il software libero organizzati dal Gruppo Utenti Gnu/Linux di Vicenzasezione di Bassano del Grappa.

Gli appuntamenti spaziano dal 9 febbraio al 18 maggio 2011 a cadenza bisettimanale.

Clicca qui per maggiori informazioni!

Ubuntu Party 2011 a Schio (Vicenza)

Il sito web di Ubuntu party
Il sito web di Ubuntu party

Il sempre attivo Dario Cavedon ci fa sapere attraverso il suo blog che il weekend a cavallo tra aprile e maggio si svolgerà l’Ubuntu Party italiano.

Mancano pochi giorni al primo “Ubuntu Party” italiano, che si terrà a Schio, in provincia di Vicenza il 30 Aprile e il 1 maggio 2011. L’evento, è organizzato dalla Comunità Italiana Ubuntu, da AVi LUG, il Linux User Group dell’Alto Vicentino, e da Piazza Telematica del Comune di Schio.

È un’ottima occasione di incontro e di scambio di esperienze per tutti e saranno presenti numerosi membri della comunità italiana di Ubuntu (tra cui Dario stesso).

Io ci sarò il giorno 30 assieme al GrappaLUG e sono sicuro sarà una bellissima esperienza. Per tutto il resto vi rimando all’articolo di Dario!

via Dario Cavedon (iced): 30 Aprile e 1 Maggio: Ubuntu Party 2011 a Schio (Vicenza).

Serata “Recupero dati fai da te” a Bassano del Grappa (VI)

Vi ricordo che mercoledì 20 aprile 2011 (dopodomani) al Centro Giovanile di Bassano del Grappa (Vicenza) terrò un intervento con demo dal titolo “Recupero dati fai da te“, come parte del ciclo di conferenze sull’informatica promosse dall’associazione GrappaLUG. Ecco la descrizione della serata:

La prima serata di livello medio, nella quale saranno esposti gli argomenti chiave del recupero dei dati cancellati da hard disk o schede di memoria. Si raccomanda una conoscenza base del terminale, o la partecipazione all’appuntamento del 6 aprile.

Ovviamente anche questa volta verrà filmato tutto e messo a disposizione online il prima possibile, però mi farebbe lo stesso piacere poter vedere di persona qualche lettore se ne ho in questa zona. Nel link qui sotto trovate tutte le informazioni, compresa la mappa del luogo alla pagina “Dove trovarci”.

via Recupero dati fai da te | GrappaLUG.

Introduzione al terminale – video della serata

Clicca qui per mostrare contenuto da Vimeo.
(leggi la privacy policy del servizio)

Quinta serata del ciclo di incontri culturali sull’informatica e il software libero organizzati dal Gruppo Utenti Gnu/Linux di Vicenzasezione di Bassano del Grappa.

Gli appuntamenti spaziano dal 9 febbraio al 18 maggio 2011 a cadenza bisettimanale.

Clicca qui per maggiori informazioni!