Installare W3C XHTML Validator 1.0 su Ubuntu

Update 16/06/11: aggiornata la guida per Natty Narwhal

Il W3C Validator è un programma che consente di controllare se il codice (X)HTML delle proprie pagine è valido e rispetta gli standard. Nasce come servizio web gratuito, ma può risultar comodo e molto più rapido installarlo sulla propria macchina per utilizzarlo in locale (magari offline), o all’interno della propria LAN.

Ubuntu Linux contiene all’interno dei propri repository il pacchetto w3c-markup-validator, ma purtroppo è una versione decisamente vecchia, la 0.7.4 (su Lucid Lynx), mentre l’attuale 1.0 è molto più piacevole esteticamente, e funziona molto bene.

Ecco quindi un tutorial per installarlo sulla nostra Ubuntu box.

Installiamo le dipendenze, aprendo un terminale e dando:

sudo apt-get install opensp libosp-dev libapache2-mod-perl2 mercurial apache2 libjson-perl libxml-libxml-perl

Scarichiamo i sorgenti dal repository di sviluppo Mercurial:

hg clone http://dvcs.w3.org/hg/markup-validator/

Ora installiamo i moduli di Perl richiesti:

sudo perl -MCPAN -e "install Bundle::W3C::Validator"

Partirà una configurazione, armatevi di pazienza, date sempre invio, eccetto quando chiede continente e nazione (utilizzati per utilizzare i server più vicini). Quando avrà finito, perl si chiuderà automaticamente, mostrandovi il prompt.

cd markup-validator
sudo mkdir -p /usr/local/validator
sudo cp -R htdocs httpd/cgi-bin share /usr/local/validator/
sed "s/w3c-validator/validator/" httpd/conf/httpd.conf > validator.conf
sudo mv validator.conf /etc/apache2/conf.d/
sudo mkdir -p /etc/w3c
sudo cp /usr/local/validator/htdocs/config/* /etc/w3c/

Ora dobbiamo modificare la configurazione per permettere al validatore di validare anche pagine locali (non solo sul web):

sudo gedit /etc/w3c/validator.conf

Andiamo a riga 57, e modifichiamo la riga così:

Allow Private IPs = yes

Salviamo e chiudiamo gedit.

UPDATE: con il mod_perl2 abilitato in Apache, sembra che ci sia un bug che non permette di parsare gli url. La soluzione è disabilitarlo con il questo procedimento:

Modifichiamo il file di configurazione del validator per Apache:

sudo gedit /etc/apache2/conf.d/validator.conf

Commentiamo attorno a riga 38 tutto questo (mettendo un # all’inizio di ogni riga):

<IfDefine MODPERL2>
# Note: this affects the whole server, not just the validator.
PerlSwitches -T
</IfDefine>

e anche attorno a riga 46, tutto questo:

<IfDefine MODPERL2>
SetHandler            perl-script
PerlResponseHandler   ModPerl::Registry
PerlOptions           +ParseHeaders
</IfDefine>

Salviamo e chiudiamo gedit.

Torniamo al nostro terminale:

sudo a2enmod expires
sudo a2enmod include
sudo a2enmod proxy

Riavviamo il webserver apache:

sudo apache2ctl graceful

Ecco il nostro validator ora disponibile all’indirizzo http://localhost/validator/ .

Nuovo tema

Tadàn! Oggi ho deciso di cambiare tema.

Ho trovato Clean Bluehaze, che mi sembra decisamente pulito ed accattivante. Rispetto alla vecchia grafica è forse meno strambo, tuttavia mi hanno colpito alcuni particolari, tipo il posizionamento di info sul post completamente a sinistra, insolito! E poi è decisamente (ente e ancora ente!) più leggibile.

Oltretutto è  validato XHTML 1.0, è ottimizzato per i motori di ricerca, supporta i widgets, è rilasciato in licenza GPL, ed ha una miriade di altre cose.

Appena ho tempo vedo di tweakarlo, e di tradurlo in italiano.

Vedro’ per esempio di fare un’immagine per l’header, cambiare il modo in cui mostra i link nel body (non mi piace più di tanto), aggiungerò il plugin Gravatar per permettere di impostare un’immaginetta a voi lettori, mostrerò i tag relativi al post, metterò apposto la visualizzazione del codice, togliendo l’immaginetta del quote, e bla bla bla.

Mi piace, mi piace.

IE e le immagini PNG

Dalla versione 7 di Internet Explorer, è supportato il formato PNG. Wow, figata! Finalmente posso utilizzare le trasparenze con il canale alpha, e poi tengono meno spazio rispetto ai GIF, e oltretutto il PNG24 è lossless, che figata!!!

STO GRANDISSIMO CAZZO!!!!!!!!!!!

Ovviamente Intermerd Destroyer decide che, SICCOME LUI FA QUEL CHE VUOLE, può permettersi di non rispettare le palette dei colori che gli imposto.

Esempio, creato in Photoshop e codato per un browser intelligente, quale Firefox, ecco come lo renderizza:

Ecco invece come renderizza il tutto il nostro simpatico amico:

IE di Merda

Non mette il colore che scelgo io, ma alcuni colori che ci assomigliano.

Mavafanculo, guarda un po’ se devo buttare il mio tempo per colpa di una ciofeca del genere.

Soluzione: salvare tutto in GIF.

UPDATE!!! qui è spiegato il motivo di questo problema. IE ha un bug nella gestione del parametro “gamma” del formato PNG. A quella pagina però potete trovare un link ad un programmino che vi consente di eliminare completamente il parametro gamma dal file, in modo da poterlo visualizzare correttamente anche in IE, mantenendo tutti i vantaggi di questo bel formato.

Unico svantaggio: così facendo probabilmente con qualche utente MAC si vedranno i colori leggermente più chiari (forse come nell’immagine di prima? Non ho un mac e non posso verificare :-) ).

Flash e XHTML


Qi crea siti web e ha avuto esperienze qon Flash e il W3C avrà notato vari problemi:
– le pagine non sono validabili ne’ HTML ne’ XHTML
– è palloso e lungo inserire il qodice
– è poqo accessibile, è difficile e laborioso prevedere un’alternativa se l’utente non ha flash, o qantomeno una versione aggiornata
– l’oggetto in flash non è (era) indicizzabile (Google è sempre meglio, ed ora lo fa)
– i browsers reagisqono in base a qome si svegliano la mattina
– in partiqolare IE riqiede un qliq sull’oggetto in flash prima qe si attivi
– in partiqolare IE mette i DIV dietro all’oggetto flash (sull’asse Z)
– in partiqolare IE fa qagare, ma qesto non c’entra niente.

Finalmente ho trovato uno sqriptino da 4kb qe mi risolve in un qolpo solo tutto!
Qa l’originale e qa la traduzione in italiano.
In pratiqa, inqludo il mio sqript qosì:

<script type="text/javascript" src="swfobject.js"></script>

Qreo un qontenitore per l’oggetto, nel qale metto anqe il qontenuto alternativo, posso benissimo scegliere di non mostrar alqn errore, se la pagina è fruibile regolarmente.

<div id="flashcontent">
This text is replaced by the Flash movie.
</div>

Qa qariqo l’oggetto. Per i dettagli vedere le pagine citate prima.

<script type="text/javascript">
var so = new SWFObject("movie.swf", "mymovie", "400", "200", "8", "#336699");
so.write("flashcontent");
</script>