<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Howtoweb.it &#187; Articoli</title>
	<atom:link href="http://www.howtoweb.it/category/articoli/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.howtoweb.it</link>
	<description>Tutorial e risorse per chi lavora sul web</description>
	<lastBuildDate>Mon, 14 Mar 2011 16:57:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Inserire un video in una pagina web con HTML5 e VideoJs</title>
		<link>http://www.howtoweb.it/articoli/inserire-un-video-in-una-pagina-web-con-html5-e-videojs/</link>
		<comments>http://www.howtoweb.it/articoli/inserire-un-video-in-una-pagina-web-con-html5-e-videojs/#comments</comments>
		<pubDate>Mon, 14 Feb 2011 05:00:02 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=694</guid>
		<description><![CDATA[Tempo fa avevo parlato su queste pagine dell&#8217;elemento video per l&#8217;html5. Tra i maggiori vantaggi di questa soluzione c&#8217;è l&#8217;esclusione di flash per device mobili (nello specifico ipad ed iphone). Dall&#8217;ultimo articolo è passato un po&#8217; e trovandomi a dover &#8230; <a href="http://www.howtoweb.it/articoli/inserire-un-video-in-una-pagina-web-con-html5-e-videojs/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.howtoweb.it/wp-content/uploads/2011/02/videojs1.jpg"><img class="alignnone size-full wp-image-701" title="videojs" src="http://www.howtoweb.it/wp-content/uploads/2011/02/videojs1.jpg" alt="" width="580" height="200" /></a></p>
<p>Tempo fa avevo parlato su queste pagine dell&#8217;elemento video per l&#8217;html5.</p>
<p>Tra i maggiori vantaggi di questa soluzione c&#8217;è l&#8217;esclusione di flash per device mobili (nello specifico ipad ed iphone).<br />
Dall&#8217;ultimo articolo è passato un po&#8217; e trovandomi a dover integrare un video per un progetto ho rivisto le mie precedenti nozioni sul tema.</p>
<p>Come prima cosa ho cercato una soluzione di veloce integrazione ma che garantisse un buon supporto e mi sono imbattuto in <a href="http://videojs.com/" target="_blank">videojs</a> (http://videojs.com/).</p>
<p>Un ottimo script che offre:</p>
<ul>
<li>un file javascript (valuta se il browser supporta l&#8217;elemento video nel caso offre flowplayer)</li>
<li>un css (per gestire lo stile del player)</li>
<li>inclusione esterna a flowplayer (per browser che non supportano l&#8217;elemento video)</li>
</ul>
<p>L&#8217;applicazione è estremamente semplice, nel caso non siate pratici del codice potete utilizzare il comodo <a href="http://videojs.com/embed-builder/" target="_blank">tool</a> (http://videojs.com/embed-builder/) che assembla il codice necessario al volo.</p>
<p>E&#8217; sufficiente inserire le risorse necessarie, ovvero:</p>
<ul>
<li>url dell&#8217;immagine di default (viene mostrata mentre il video viene caricato)</li>
<li>url delvideo in mp4</li>
<li>url del video in ogg</li>
<li>url del video in webm</li>
</ul>
<p>tra le opzioni vediamo:</p>
<ul>
<li>quale video caricare nel player flash (di default l&#8217;mp4)</li>
<li>altezza e larghezza del video</li>
<li>se inserire i link per il donwload del video (per device che non supportano i video)</li>
<li>support videojs (inserisce o meno un link al sito di videojs)</li>
<li>preload (permette di far partire il buffer non appena la pagina è caricata)</li>
<li>autoplay (fa partire il video in automatico)compact version (codice senza spazi per peso inferiore)</li>
</ul>
<p>Con questa soluzione si velocizza notevolmente l&#8217;inserimento dei video in html su siti e applicazioni web, l&#8217;unica miglioria che mi sento di consigliare è quella di evitare l&#8217;inclusione esterna del flowplayer ma caricare la risorsa sul proprio spazio e richiamarla come tale.<br />
In questo modo otteniamo un caricamento più veloce (e più gestibile) del player in flash oltre che assicurarci una versione più aggiornata rispetto a quella impostata nello script.</p>
<p>L&#8217;ultima considerazione su questa tecnica è la conversione del video nei tre formati necessari, sicuramente complessa per chi è poco pratico di questo ambito. Il mio suggerimento è quello di provare ad utilizzare vlc per la conversione, che permette un&#8217;ampia e dettagliata scelta dei codec e dei formati nella sua ultima versione includendo sia mp4 che ogg.</p>
<p>Come alternativa è possibile utilizzare <a href="http://handbrake.fr/" target="_blank">handbrake </a>(http://handbrake.fr/) per l&#8217;mp4 e <a href="http://v2v.cc/~j/ffmpeg2theora/" target="_blank">ffmpeg2theora </a>(http://v2v.cc/~j/ffmpeg2theora/) per l&#8217;ogg, nel caso non siate pratici di dos esiste una <a href="http://www.softpedia.com/downloadTag/theora+converter" target="_blank">versione con interfaccia</a> (http://www.softpedia.com/downloadTag/theora+converter) basata sullo stesso convertitore.<br />
Se non incontrate successo con queste opzioni suggerisco una visita a <a href="http://www.reelseo.com/html5-ogg-h264-encoding-tools/" target="_blank">questo post</a> (http://www.reelseo.com/html5-ogg-h264-encoding-tools/), dove vengono consigliati numerose alternative.</p>
<p>Tra i consigli ho omesso un convertitore per il formato <a href="http://www.webmproject.org/" target="_blank">webm </a>(http://www.webmproject.org/), personalmente non ho avuto fortuna e non son riuscito ad ottenere un file video funzionante per questo formato, probabilmente anche per il poco tempo a disposizione.</p>
<p>Per ora ho quindi preferito omettere questa alternativa nei miei progetti non essendo questo formato l&#8217;unico supportato dai diversi browser. Per il futuro spero di potermi applicare di più, in attesa vi lascio la lista di convertitori suggerita nel sito del <a href="http://www.webmproject.org/tools/" target="_blank">webm </a>(http://www.webmproject.org/tools/) per fare qualche test.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/inserire-un-video-in-una-pagina-web-con-html5-e-videojs/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Utilizzare JQuery UI Autocomplete con PHP e Mysql</title>
		<link>http://www.howtoweb.it/articoli/utilizzare-jquery-ui-autocomplete-con-php-e-mysql/</link>
		<comments>http://www.howtoweb.it/articoli/utilizzare-jquery-ui-autocomplete-con-php-e-mysql/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 08:56:36 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=680</guid>
		<description><![CDATA[In questo articolo vedremo come integrare facilmente il widget autocomplete di Jquery UI all&#8217;interno di pagine dinamiche. L&#8217;utilizzo è molto semplice, come prima cosa è necessario scaricare il pacchetto completo di Jquery UI compreso di tema personalizzato o standard e &#8230; <a href="http://www.howtoweb.it/articoli/utilizzare-jquery-ui-autocomplete-con-php-e-mysql/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-687" title="autocomplete" src="http://www.howtoweb.it/wp-content/uploads/2010/06/autocomplete.jpg" alt="" /></p>
<p>In questo articolo vedremo come integrare facilmente il widget autocomplete di Jquery UI all&#8217;interno di pagine dinamiche.</p>
<p>L&#8217;utilizzo è molto semplice, come prima cosa è necessario scaricare il pacchetto completo di Jquery UI compreso di tema personalizzato o standard e collegare i rispettivi files alla pagina dinamica.</p>
<pre>&lt;link rel="stylesheet" href="css/theme/ui.theme.css" type="text/css"/&gt;
&lt;script src="js/jquery.min.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;script src="js/jquery-ui.min.js" type="text/javascript"&gt;&lt;/script&gt;</pre>
<p>Ora possiamo aggiungere l&#8217;elemento input che utilizzero per l&#8217;autocomplete, per comodità di selezione verrà aggiunto un id.</p>
<pre>&lt;input value="Insert your tag here" /&gt;</pre>
<p>Per ciò che riguarda javascript iniziamo applicando un autocomplete base al campo input</p>
<pre>$(function() {var myTags = ["tag1", "tag2", "anotherTag", "simpleTag"];
$("#tags").autocomplete({source: myTags});});</pre>
<p>In questo caso settiamo come opzione &#8220;source&#8221; che specifica come sorgente l&#8217;array &#8220;myTags&#8221;.Per rendere dinamico l&#8217;autocomplete modifichiamo la sorgente con un file dinamico che si occuperà di effettuare la ricerca</p>
<pre> $("#tags").autocomplete({source: "tagSearch.php"});</pre>
<p>Di seguito un esempio per tagSearch.php:</p>
<pre>//creazione di un array vuoto
$return_arr = array();

//dati di accesso a mysql e al db
$dbhost = 'YOUR_SERVER';
$dbuser = 'YOUR_USERNAME';
$dbpass = 'YOUR_PASSWORD';
$dbname = 'YOUR_DATABASE_NAME';

//definisco la variabile di ricerca dell'utente
$term = $_GET("term");

//connessione al a mysql
$conn = mysql_connect($dbhost, $dbuser, $dbpass)
or die ('Impossibile connettersi a Mysql');
//selezione ddb
mysql_select_db($dbname);
//se connesso
if ($conn)
{
//query select
$fetch = mysql_query("SELECT * FROM tags WHERE MATCH(tagName) AGAINST('".$term."*')");
//loop dei dati
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
$row_array['value'] = $row['tagName '];
array_push($return_arr,$row_array);
}

}
//chiudo la connessione a mysql
mysql_close($conn);
//restituisco l'array in formato json
echo json_encode($return_arr);</pre>
<p>La variabile $terms viene ricavata dall&#8217;url, l&#8217;autocomplete di Jquery UI richiama infatti il file search.php con la variabile term (es. search.php?term=ciao) ad ogni change nel campo input.Considerato che la variabile term viene aggiornata e inviata ad ogni change del campo ho utilizzato MATCH AGAINST nella query affinchè ad ogni richiesta mysql cerchi l&#8217;input dell&#8217;utente seguito da altro.Il risultato è che a fronte di una ricerca &#8220;a&#8221; verranno restituiti tutti i dati che iniziano per &#8220;a&#8221;, aggiungendo lettere verranno restituiti solo i dati che corrispondono ai criteri della ricerca.</p>
<p>L&#8217;autocomplete di JQuery UI prevede una vasta serie di opzioni con le quali è possibile manipolare i dati prensenti nell&#8217;input e nei risultati, creare una cache dai dati e customizzare aspetto e animazioni dell&#8217;input.Per maggiori informazioni consiglio una lettura della documentazione disponibile sulla <a title="jquery ui autocomplete demo" href="http://jqueryui.com/demos/autocomplete/" target="_blank">pagina dedicata</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/utilizzare-jquery-ui-autocomplete-con-php-e-mysql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lezioni di HTML 5 Lezione 4 &#8211; L&#039;elemento video</title>
		<link>http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-4-lelemento-video/</link>
		<comments>http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-4-lelemento-video/#comments</comments>
		<pubDate>Wed, 19 May 2010 22:19:30 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html 5]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=635</guid>
		<description><![CDATA[Una delle funzionalità più interessanti dell&#8217;HTML 5 è senza dubbio rappresentata dalla possibilità di inserire filmati video all&#8217;interno della pagina web. Questo elemento cambia notevolmente il modo in cui gli utenti possono usufruire dei video su internet permettendo la visione &#8230; <a href="http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-4-lelemento-video/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-573" title="html5_lesson1" src="http://www.howtoweb.it/wp-content/uploads/2010/04/html5_lesson11.jpg" alt="" width="580" height="200" /></p>
<p>Una delle funzionalità più interessanti dell&#8217;HTML 5 è senza dubbio rappresentata dalla possibilità di inserire filmati video all&#8217;interno della pagina web.</p>
<p>Questo elemento cambia notevolmente il modo in cui gli utenti possono usufruire dei video su internet permettendo la visione del contenuto senza un player flash.</p>
<p>L&#8217;attuale supporto per questo elemento è riservato alle ultime versioni di firefox, safari e chrome ma la stessa microsoft ha annunciato il supporto per Internet explorer 9 mentre per Opera dalla versione 10 (10.5).</p>
<h3>Per iniziare</h3>
<p>Prima di iniziare con il codice è indispensabile ricordare che non tutti i browser supportano gli stessi contenitori e gli stessi codecs audio/video. Un file video è di fatti composto da un contenitore (mpeg4,flash video, ogg ecc), un codec audio (mpeg1,vorbis, ecc) e un codec video (mpeg4 asp, h.264, theora).<br />
Per portare un po&#8217; di ordine in questa situazione è utile tener presente ciò che è supportato dai browser e preparare due files. Uno con theora,vorbis e ogg e il secondo con h.624,aac e mp4.</p>
<p>Il primo files sarà supportato da firefox, opera e chrome il secondo da chrome, safari, iphone e android.</p>
<p>Per la conversione dei files di questo esempio sono stati utilizzati <a href="http://v2v.cc/~j/ffmpeg2theora/" target="_blank">ffmpeg2theora</a> ed <a href="http://handbrake.fr/" target="_blank">handbrake</a> .</p>
<h3>L&#8217;elemento video</h3>
<p>Per integrare nella pagina web il nostro video utilizziamo l&#8217;elemento video con chiusura esplicita.</p>
<pre>&lt;video&gt;&lt;/video&gt;</pre>
<p>Al suo interno è possibile specificare un contenuto alternativo nel caso il browser non supporti questo elemento.</p>
<pre>&lt;video&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Considerato che l&#8217;elemento video si comporta come l&#8217;elemento immagine necessita sempre di avere un altezza e una larghezza specifica.</p>
<pre>&lt;video width="640" height="480"&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Per inserire il video sorgente aggiungiamo l&#8217;attributo src con la path relativa alla risorsa.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480"&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Per rendere visibili i controlli del video è sufficiente aggiungere l&#8217;attributo controls.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480" controls&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Se desideriamo che il video venga scaricato non appena la pagina è caricata possiamo aggiungere l&#8217;attributo preload.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480" preload&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>O in caso contrario specificare &#8220;none&#8221; come valore.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480" preload="none"&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Un&#8217;ultima opzione viene offerta dall&#8217;attributo autoplay che fa partire automaticamente il filmato.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480" autoplay&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Un&#8217;ultima nota va dedicata al fatto che abbiamo due file da inserire e non uno, l&#8217;attributo src non è quindi sufficiente e dobbiamo utilizzare l&#8217;elemento source con l&#8217;attributo src per definire la risorsa.<br />
In aggiunta è necessario specificare il mime del file e i codecs per far sì che il browser sappia a priori cosa andrà a caricare e se è supporta lo specifico file.</p>
<pre>&lt;video  width="640" height="480" autoplay&gt;
&lt;source src="miovideo.m4v" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'&gt;
&lt;source src="miovideo.ogv" type='video/ogg; codecs="theora, vorbis"'&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<h3>In conclusione</h3>
<p>Una volta applicato questo codice con i relativi percorsi ai rispettivi files si ottiene un risultato come in <a href="http://www.howtoweb.it/wp-content/uploads/video" target="_blank">questo esempio</a>.</p>
<p>Il video utilizzato nell&#8217;esempio è  visibile su <a href="http://www.youtube.com/watch?v=XB5qvfE92P8" target="_blank">youtube </a>ed è stato gentilmente fornito da <a href="http://blog.vialemarchinoguido.com/" target="_blank">Guido Viale Marchino</a> che ringrazio per l&#8217;aiuto.</p>
<p>Una funzionalità aggiuntiva per i browser che non supportano il tag video potrebbe essere quella di aggiungere un flash player come contenuto alternativo ma richiede una verifica del supporto dell&#8217;elemento video per il client utilizzato dall&#8217;utente.</p>
<p>Nel prossimo articolo vedremo come verificare il supporto delle varie funzionalità dell&#8217;HTML 5 nel browser dell&#8217;utente. Torna a trovarmi su howtoweb.it per le prossime lezioni di html 5 o <a href="http://www.howtoweb.it/feed/" target="_self">iscriviti agli rss</a> per rimanere sempre aggiornato sui nuovi articoli.</p>
<h3>Nota:</h3>
<p>Ho notato che inizialmente il video non veniva caricato correttamente su firefox e opera, il problema era il fatto che il mime video/ogg non veniva associato da apache al file in formato .ogv</p>
<p>Per risolvere ho aggiunto un file .htaccess nella cartella specificando a quali formati applicare il mime presente nela pagina html.</p>
<p>Nel caso incontriate la stessa problematica è possibile risolvere con questa linea di codice all&#8217;interno del file .htaccess</p>
<pre>AddType video/ogg .ogg .ogv</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-4-lelemento-video/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Lezioni di HTML 5 Lezione 4 &#8211; L&#8217;elemento video</title>
		<link>http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-4-lelemento-video-2/</link>
		<comments>http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-4-lelemento-video-2/#comments</comments>
		<pubDate>Wed, 19 May 2010 22:19:30 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html 5]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=635</guid>
		<description><![CDATA[Una delle funzionalità più interessanti dell&#8217;HTML 5 è senza dubbio rappresentata dalla possibilità di inserire filmati video all&#8217;interno della pagina web. Questo elemento cambia notevolmente il modo in cui gli utenti possono usufruire dei video su internet permettendo la visione &#8230; <a href="http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-4-lelemento-video-2/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-573" title="html5_lesson1" src="http://www.howtoweb.it/wp-content/uploads/2010/04/html5_lesson1.jpg" alt="" width="580" height="200" /></p>
<p>Una delle funzionalità più interessanti dell&#8217;HTML 5 è senza dubbio rappresentata dalla possibilità di inserire filmati video all&#8217;interno della pagina web.</p>
<p>Questo elemento cambia notevolmente il modo in cui gli utenti possono usufruire dei video su internet permettendo la visione del contenuto senza un player flash.</p>
<p>L&#8217;attuale supporto per questo elemento è riservato alle ultime versioni di firefox, safari e chrome ma la stessa microsoft ha annunciato il supporto per Internet explorer 9 mentre per Opera dalla versione 10 (10.5).</p>
<h3>Per iniziare</h3>
<p>Prima di iniziare con il codice è indispensabile ricordare che non tutti i browser supportano gli stessi contenitori e gli stessi codecs audio/video. Un file video è di fatti composto da un contenitore (mpeg4,flash video, ogg ecc), un codec audio (mpeg1,vorbis, ecc) e un codec video (mpeg4 asp, h.264, theora).<br />
Per portare un po&#8217; di ordine in questa situazione è utile tener presente ciò che è supportato dai browser e preparare due files. Uno con theora,vorbis e ogg e il secondo con h.624,aac e mp4.</p>
<p>Il primo files sarà supportato da firefox, opera e chrome il secondo da chrome, safari, iphone e android.</p>
<p>Per la conversione dei files di questo esempio sono stati utilizzati <a href="http://v2v.cc/~j/ffmpeg2theora/" target="_blank">ffmpeg2theora</a> ed <a href="http://handbrake.fr/" target="_blank">handbrake</a> .</p>
<h3>L&#8217;elemento video</h3>
<p>Per integrare nella pagina web il nostro video utilizziamo l&#8217;elemento video con chiusura esplicita.</p>
<pre>&lt;video&gt;&lt;/video&gt;</pre>
<p>Al suo interno è possibile specificare un contenuto alternativo nel caso il browser non supporti questo elemento.</p>
<pre>&lt;video&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Considerato che l&#8217;elemento video si comporta come l&#8217;elemento immagine necessita sempre di avere un altezza e una larghezza specifica.</p>
<pre>&lt;video width="640" height="480"&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Per inserire il video sorgente aggiungiamo l&#8217;attributo src con la path relativa alla risorsa.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480"&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Per rendere visibili i controlli del video è sufficiente aggiungere l&#8217;attributo controls.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480" controls&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Se desideriamo che il video venga scaricato non appena la pagina è caricata possiamo aggiungere l&#8217;attributo preload.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480" preload&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>O in caso contrario specificare &#8220;none&#8221; come valore.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480" preload="none"&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Un&#8217;ultima opzione viene offerta dall&#8217;attributo autoplay che fa partire automaticamente il filmato.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480" autoplay&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Un&#8217;ultima nota va dedicata al fatto che abbiamo due file da inserire e non uno, l&#8217;attributo src non è quindi sufficiente e dobbiamo utilizzare l&#8217;elemento source con l&#8217;attributo src per definire la risorsa.<br />
In aggiunta è necessario specificare il mime del file e i codecs per far sì che il browser sappia a priori cosa andrà a caricare e se è supporta lo specifico file.</p>
<pre>&lt;video  width="640" height="480" autoplay&gt;
&lt;source src="miovideo.m4v" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'&gt;
&lt;source src="miovideo.ogv" type='video/ogg; codecs="theora, vorbis"'&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<h3>In conclusione</h3>
<p>Una volta applicato questo codice con i relativi percorsi ai rispettivi files si ottiene un risultato come in <a href="http://www.howtoweb.it/wp-content/uploads/video" target="_blank">questo esempio</a>.</p>
<p>Il video utilizzato nell&#8217;esempio è  visibile su <a href="http://www.youtube.com/watch?v=XB5qvfE92P8" target="_blank">youtube </a>ed è stato gentilmente fornito da <a href="http://blog.vialemarchinoguido.com/" target="_blank">Guido Viale Marchino</a> che ringrazio per l&#8217;aiuto.</p>
<p>Una funzionalità aggiuntiva per i browser che non supportano il tag video potrebbe essere quella di aggiungere un flash player come contenuto alternativo ma richiede una verifica del supporto dell&#8217;elemento video per il client utilizzato dall&#8217;utente.</p>
<p>Nel prossimo articolo vedremo come verificare il supporto delle varie funzionalità dell&#8217;HTML 5 nel browser dell&#8217;utente. Torna a trovarmi su howtoweb.it per le prossime lezioni di html 5 o <a href="http://www.howtoweb.it/feed/" target="_self">iscriviti agli rss</a> per rimanere sempre aggiornato sui nuovi articoli.</p>
<h3>Nota:</h3>
<p>Ho notato che inizialmente il video non veniva caricato correttamente su firefox e opera, il problema era il fatto che il mime video/ogg non veniva associato da apache al file in formato .ogv</p>
<p>Per risolvere ho aggiunto un file .htaccess nella cartella specificando a quali formati applicare il mime presente nela pagina html.</p>
<p>Nel caso incontriate la stessa problematica è possibile risolvere con questa linea di codice all&#8217;interno del file .htaccess</p>
<pre>AddType video/ogg .ogg .ogv</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-4-lelemento-video-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>L&#039;inutilità di sviluppare per Internet Explorer 6</title>
		<link>http://www.howtoweb.it/articoli/linutilita-di-sviluppare-per-internet-explorer-6/</link>
		<comments>http://www.howtoweb.it/articoli/linutilita-di-sviluppare-per-internet-explorer-6/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 14:12:05 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=624</guid>
		<description><![CDATA[Nelle ultime settimane mi si sono presentate diverse occasioni per discutere sul supporto da offrire agli utenti di Internet Explorer 6 e ho notato che la questione risulta ben lontana dall&#8217;essere risolta. Allo stato attuale i maggiori servizi di statistiche &#8230; <a href="http://www.howtoweb.it/articoli/linutilita-di-sviluppare-per-internet-explorer-6/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-627" title="ie6" src="http://www.howtoweb.it/wp-content/uploads/2010/04/ie61.jpg" alt="" width="580" height="200" /></p>
<p>Nelle ultime settimane mi si sono presentate diverse occasioni per discutere sul supporto da offrire agli utenti di Internet Explorer 6 e ho notato che la questione risulta ben lontana dall&#8217;essere risolta.</p>
<p>Allo stato attuale i maggiori servizi di statistiche web delineano gli utenti di Internet Explorer 6 tra il 9% e il 18% dell&#8217;utenza mondiale.</p>
<p>Una statistica indubbiamente preoccupante considerato che superara gli utenti di safari, chrome ed opera messi insieme.</p>
<p>Detto questo prima di farsi prendere dal panico suggerirei di abbandonare le ricerce per ottenere un numero preciso di utenti IE6 sul pianeta e di basarsi su qualcosa di più oggettivo.</p>
<p>Sicuramente se vi siete posti il problema è perchè temete di perdere utenza tra coloro che utilizzano questo vetusto browser e prima di procedere oltre vi consiglierei di rispondere alla seguente domanda:</p>
<p><strong><span style="text-decoration: underline;">Quanti utenti con Internet Explorer 6 navigano sul vostro sito?</span></strong></p>
<p>Per fare un esempio su questo blog gli utenti con ie6 negli ultimi 4 mesi risultano meno dell&#8217;1% e lo stesso potrebbe essere per il vostro sito.</p>
<p>Non saprete mai di quanti utenti state parlando finchè non effettuerete delle verifiche sulle vostre statistiche.</p>
<p>Sicuramente questi dati sono molto più precisi delle statistiche globali, che essendo su grandi numeri e contesti diversi probabilmente non rappresentano il vostro caso.</p>
<p>Una volta verificati i numeri vi inviterei a valutare anche l&#8217;andamento delle visite degli utenti con IE6 da un anno fa ad oggi.</p>
<p>Sulla base di questi dati possiamo arrivare sicuramente ad almeno un paio di conclusioni:</p>
<p><strong>1) Gli attuali utenti con Internet Explorer 6 sono una minoranza</strong></p>
<p><strong>2) Gli attuali utenti con Internet Explorer 6 sono meno di un anno fa</strong></p>
<p>Queste sono realtà oggettive ricavabili dalle statistiche di qualunque sito web.</p>
<p>Perchè accade questo? Internet Explorer 6 è un browser obsoleto, uscito nel 2001 che ha visto alterni update fino al 2007/2008, da allora sono uscite 2 nuove versioni di questo browser e a breve ne vedremo una terza.Questo browser presenta innumerevoli problemi di sicurezza, performance e funzionalità, per questo motivo molte aziende quali Google hanno abbandonato il supporto a questo browser.</p>
<p>Per lo stesso motivo Microsoft sta portando avanti da tempo campagne a favore dell&#8217;aggiornamento a Internet Explorer 8.</p>
<p>Gli interventi necessari per il funzionamento delle attuali tecnologie su Internet Explorer 6 sono onerosi e in alcuni casi impossibili, richiedono lunghi tempi di produzione e di test, quindi grandi costi che potrebbero essere altrimenti destinati al miglioramento dell&#8217;accessibilità e dell&#8217;usabilità, all&#8217;ottimizzazione dei tempi di caricamento delle pagine e per i motori di ricerca che portano vantaggi concreti a tutta l&#8217;utenza del sito e non solo ad una minoranza in via d&#8217;estinzione.</p>
<p>Lavorare ad oggi per il supporto agli utenti di Internet Explorer 6 è di fatto uno spreco di tempo e risorse che non porta vantaggi a nessuno e rappresenta una completa opposizione al buon senso che attualmente caratterizza il mondo del web ed aziende del livello di Microsoft o Google.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/linutilita-di-sviluppare-per-internet-explorer-6/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>L&#8217;inutilità di sviluppare per Internet Explorer 6</title>
		<link>http://www.howtoweb.it/articoli/linutilita-di-sviluppare-per-internet-explorer-6-2/</link>
		<comments>http://www.howtoweb.it/articoli/linutilita-di-sviluppare-per-internet-explorer-6-2/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 14:12:05 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=624</guid>
		<description><![CDATA[Nelle ultime settimane mi si sono presentate diverse occasioni per discutere sul supporto da offrire agli utenti di Internet Explorer 6 e ho notato che la questione risulta ben lontana dall&#8217;essere risolta. Allo stato attuale i maggiori servizi di statistiche &#8230; <a href="http://www.howtoweb.it/articoli/linutilita-di-sviluppare-per-internet-explorer-6-2/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-627" title="ie6" src="http://www.howtoweb.it/wp-content/uploads/2010/04/ie6.jpg" alt="" width="580" height="200" /></p>
<p>Nelle ultime settimane mi si sono presentate diverse occasioni per discutere sul supporto da offrire agli utenti di Internet Explorer 6 e ho notato che la questione risulta ben lontana dall&#8217;essere risolta.</p>
<p>Allo stato attuale i maggiori servizi di statistiche web delineano gli utenti di Internet Explorer 6 tra il 9% e il 18% dell&#8217;utenza mondiale.</p>
<p>Una statistica indubbiamente preoccupante considerato che superara gli utenti di safari, chrome ed opera messi insieme.</p>
<p>Detto questo prima di farsi prendere dal panico suggerirei di abbandonare le ricerce per ottenere un numero preciso di utenti IE6 sul pianeta e di basarsi su qualcosa di più oggettivo.</p>
<p>Sicuramente se vi siete posti il problema è perchè temete di perdere utenza tra coloro che utilizzano questo vetusto browser e prima di procedere oltre vi consiglierei di rispondere alla seguente domanda:</p>
<p><strong><span style="text-decoration: underline;">Quanti utenti con Internet Explorer 6 navigano sul vostro sito?</span></strong></p>
<p>Per fare un esempio su questo blog gli utenti con ie6 negli ultimi 4 mesi risultano meno dell&#8217;1% e lo stesso potrebbe essere per il vostro sito.</p>
<p>Non saprete mai di quanti utenti state parlando finchè non effettuerete delle verifiche sulle vostre statistiche.</p>
<p>Sicuramente questi dati sono molto più precisi delle statistiche globali, che essendo su grandi numeri e contesti diversi probabilmente non rappresentano il vostro caso.</p>
<p>Una volta verificati i numeri vi inviterei a valutare anche l&#8217;andamento delle visite degli utenti con IE6 da un anno fa ad oggi.</p>
<p>Sulla base di questi dati possiamo arrivare sicuramente ad almeno un paio di conclusioni:</p>
<p><strong>1) Gli attuali utenti con Internet Explorer 6 sono una minoranza</strong></p>
<p><strong>2) Gli attuali utenti con Internet Explorer 6 sono meno di un anno fa</strong></p>
<p>Queste sono realtà oggettive ricavabili dalle statistiche di qualunque sito web.</p>
<p>Perchè accade questo? Internet Explorer 6 è un browser obsoleto, uscito nel 2001 che ha visto alterni update fino al 2007/2008, da allora sono uscite 2 nuove versioni di questo browser e a breve ne vedremo una terza.Questo browser presenta innumerevoli problemi di sicurezza, performance e funzionalità, per questo motivo molte aziende quali Google hanno abbandonato il supporto a questo browser.</p>
<p>Per lo stesso motivo Microsoft sta portando avanti da tempo campagne a favore dell&#8217;aggiornamento a Internet Explorer 8.</p>
<p>Gli interventi necessari per il funzionamento delle attuali tecnologie su Internet Explorer 6 sono onerosi e in alcuni casi impossibili, richiedono lunghi tempi di produzione e di test, quindi grandi costi che potrebbero essere altrimenti destinati al miglioramento dell&#8217;accessibilità e dell&#8217;usabilità, all&#8217;ottimizzazione dei tempi di caricamento delle pagine e per i motori di ricerca che portano vantaggi concreti a tutta l&#8217;utenza del sito e non solo ad una minoranza in via d&#8217;estinzione.</p>
<p>Lavorare ad oggi per il supporto agli utenti di Internet Explorer 6 è di fatto uno spreco di tempo e risorse che non porta vantaggi a nessuno e rappresenta una completa opposizione al buon senso che attualmente caratterizza il mondo del web ed aziende del livello di Microsoft o Google.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/linutilita-di-sviluppare-per-internet-explorer-6-2/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Lezioni di HTML 5 Lezione 3 &#8211; Semantica</title>
		<link>http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-3-semantica/</link>
		<comments>http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-3-semantica/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 11:48:50 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html 5]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=615</guid>
		<description><![CDATA[Nel precedente articolo abbiamo visto come utilizzare gli elementi semantici dell&#8217;HTML 5 nella nostra pagina web. Oggi approfondiremo gli aspetti relativi alla semantica di questi tag. Un principale vantaggio derivante dall&#8217;utilizzo di questi elementi è la standarizzazione degli elementi, ovvero &#8230; <a href="http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-3-semantica/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-573" title="html5_lesson1" src="http://www.howtoweb.it/wp-content/uploads/2010/04/html5_lesson11.jpg" alt="" width="580" height="200" /></p>
<p><a title="nuovi tag html 5" href="http://www.howtoweb.it/articoli/lezione-di-html-5-lezione-2-usare-i-nuovi-tag/" target="_self">Nel precedente articolo</a> abbiamo visto come utilizzare gli elementi semantici dell&#8217;HTML 5 nella nostra pagina web.</p>
<p>Oggi approfondiremo gli aspetti relativi alla semantica di questi tag.</p>
<p>Un principale vantaggio derivante dall&#8217;utilizzo di questi elementi è la standarizzazione degli elementi, ovvero a differenza dell&#8217;HTML 4.01 abbiamo una serie di elementi specifici da utilizzare per diverso scopo.</p>
<p>Questo di fatto evita la definizione di div con classi ed id che risultano generici e variano a seconda delle abitudini di chi sviluppa la pagina.</p>
<p>Oltre a questo l&#8217;HTML 5 presenta un nuovo algoritmo per la definizione dell&#8217;outline del documento che modifica il normale modo di definire le intestazioni nel file html.</p>
<p>Facciamo un passo indietro, nell&#8217;HTML 4.01 l&#8217;unico modo per definire l&#8217;outline del documento è quello di utilizzare gli elementi h1/h6 con il rispettivo valore semantico.</p>
<p>Per esempio:</p>
<pre>&lt;h1&gt;Titolo del sito&lt;/h1&gt;
 &lt;h2&gt;sottotitolo del sito&lt;/h2&gt;</pre>
<pre>&lt;h3&gt;Titolo del post&lt;/h3&gt;
 &lt;h4&gt;Sottotitolo del post&lt;/h4&gt;</pre>
<pre>&lt;h3&gt;Titolo del post&lt;/h3&gt;
 &lt;h4&gt;Sottotitolo del post&lt;/h4&gt;</pre>
<p>Notate come h1 sia univoco nella pagina e rappresenti il titolo del sito, il sottotitolo del sito è definito con &lt;h2&gt;, mentre h3 e h4 rappresentano rispettivamente titolo e sottotitolo di una sezione/contenuto della pagina.</p>
<p>In HTML 5 possiamo modificare questa situazione come segue:</p>
<pre>&lt;header&gt;
 &lt;hgroup&gt;
 &lt;h1&gt;Titolo del sito&lt;/h1&gt;
 &lt;h2&gt;sottotitolo del sito&lt;/h2&gt;
 &lt;/hgroup&gt;
 &lt;/header&gt;</pre>
<pre>&lt;article&gt;
 &lt;hgroup&gt;
 &lt;h1&gt;Titolo del post&lt;/h1&gt;
 &lt;h2&gt;Sottotitolo del post&lt;/h2&gt;
 &lt;/hgroup&gt;
 &lt;/article&gt;</pre>
<pre>&lt;article&gt;
 &lt;hgroup&gt;
 &lt;h1&gt;Titolo del post&lt;/h1&gt;
 &lt;h2&gt;Sottotitolo del post&lt;/h2&gt;
 &lt;/hgroup&gt;
 &lt;/article&gt;</pre>
<p>Analizziamo nel dettaglio le differenze.</p>
<h3>L&#8217;elemento h1 si ripete</h3>
<p>Nell&#8217;HTML 5 l&#8217;utilizzo dell&#8217;elemento &lt;article&gt; definisce una sezione indipendente della pagina dove appunto posso riutilizzare l&#8217;elemento h1 dove avrà valore di titolo della sezione/contenuto e non della pagina.</p>
<h3>Utilizzo di hgroup</h3>
<p>L&#8217;utilizzo di hgroup ha lo scopo di raggruppare insieme intestazioni diverse, nel caso del primo elemento all&#8217;interno dell&#8217;header h1 avrà valore di titolo e h2 di sottotitolo, questo permette di utilizzare un&#8217;intestazione con valore associato ad altre intestazioni presenti in quel contesto senza che il significato venga mistificato da elementi uguali presenti sulla pagina.</p>
<p>Come abbiamo visto l&#8217;HTML 5 tratta diversamente la semantica degli elementi da altri linguaggi di markup ma offre indubbiamente una serie di vantaggi che rendono il codice molto più modulare e semantico.</p>
<p>Nel prossimo articolo vedremo come verificare il supporto delle funzionalità più avanzate dell&#8217;HTML5 sul browser dell&#8217;utente.</p>
<p>Passate a trovarmi come sempre su howtoweb.it o abbonatevi ai feed rss per rimanere aggiornati sugli ultimi articoli.</p>
<p>Alla prossima</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-3-semantica/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Lezione di HTML 5 Lezione 2 &#8211; Usare i nuovi tag</title>
		<link>http://www.howtoweb.it/articoli/lezione-di-html-5-lezione-2-usare-i-nuovi-tag/</link>
		<comments>http://www.howtoweb.it/articoli/lezione-di-html-5-lezione-2-usare-i-nuovi-tag/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 05:00:29 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html 5]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=605</guid>
		<description><![CDATA[Nella lezione precedente abbiamo visto come impostare il nostro file in HTML 5 definendo un doctype shorted, un corretto charset e gestendo css e javascript senza enunciazione del mime. Oggi vedremo invece alcuni tag che utilizzeremo per definire il layout &#8230; <a href="http://www.howtoweb.it/articoli/lezione-di-html-5-lezione-2-usare-i-nuovi-tag/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-573" title="html5_lesson1" src="http://www.howtoweb.it/wp-content/uploads/2010/04/html5_lesson11.jpg" alt="" width="580" height="200" /></p>
<p>Nella lezione precedente abbiamo visto come impostare il nostro file in HTML 5 definendo un doctype shorted, un corretto charset e gestendo css e javascript senza enunciazione del mime.</p>
<p>Oggi vedremo invece alcuni tag che utilizzeremo per definire il layout della nostra pagina web.</p>
<p>Prima di procedere, dobbiamo però risolvere un dubbio cruciale.</p>
<h3>I nuovi elementi dell&#8217;HTML 5 sono supportati dai browser attuali?</h3>
<p>La maggior parte dei browser non incontriamo problemi nell&#8217;utilizzo di questi tag, normalmente il browser individua l&#8217;elemento lo aggiunge al DOM della pagina e gli attribuisce dei valori di default in base alle informazioni in suo possesso e nel caso possiamo sovrascrivere stili customizzati con un normale css.</p>
<p>La vera problematica è Internet Explorer che fino alla versione attuale (8) rappresenta l&#8217;elemento sconosciuto nel DOM come un nodo vuoto, rendendo impossibile definire un qualunque stile per l&#8217;elemento.</p>
<h3>La soluzione per Internet Explorer</h3>
<p>Prima di disperarci e tornare ad insultare per l&#8217;ennesima volta il browser di mamma Microsoft sappiate che esiste una soluzione molto semplice al problema.</p>
<p>Possiamo infatti pensare di creare un elemento sconosciuto a Internet Explorer prima della creazione del DOM.</p>
<p>Senza aggiungere l&#8217;elemento a mano nel codice possiamo utilizzare javascript per creare a priori l&#8217;elemento e permetter così di stilizzarlo con i css.</p>
<pre>&lt;script&gt;document.createElement("header");&lt;/script&gt;</pre>
<p>Per fare in modo che il workaround funzioni, è necessario mantenere lo script nell&#8217;head della pagina, una buona norma può essere quella di inserire lo script in un commento condizionale per IE.</p>
<pre>&lt;!--[if IE]&gt;
&lt;script&gt;document.createElement("header");&lt;/script&gt;
&lt;![endif]--&gt;</pre>
<p>Lo script creerà così un elemento &lt;header&gt; prima della creazione del DOM solo per IE, permettendo di stilizzare tale elemento con i css.</p>
<h3>Una scelta migliore,  HTML5 enabling script</h3>
<p>Considerato che i nuovi elementi dell&#8217;HTML 5 sono numerosi potremmo pensare di aggiungerli a mano ma una soluzione sicuramente più comoda e più sicura è rappresentata da questo <a title="HTML 5 Enabling script" href="http://remysharp.com/2009/01/07/html5-enabling-script/" target="_blank">script javascript di Remy Sharp</a> che oltre a velocizzare la realizzazione considera anche problematiche più peculiari come i css per la stampa dove i javascript non vengono eseguiti.</p>
<h3>Al markup!</h3>
<p>Ora che siamo certi di un funzionamento crossbrowser possiamo iniziare ad aggiungere qualche nuovo tag al nostro file.</p>
<h3>Header</h3>
<p>L&#8217;elemento &lt;header&gt; ha come scopo quello di racchiudere una porzione di codice che avrà ruolo di testata della pagina.</p>
<p>Per esempio</p>
<pre>&lt;header&gt;
&lt;!-- il logo ed eventuale intestazione al sito --&gt;
&lt;/header&gt;</pre>
<h3>Hgroup</h3>
<p>L&#8217;elemento &lt;hgroup&gt; racchiude una porzione di codice composta da intestazioni</p>
<pre>&lt;header&gt;
&lt;hgroup&gt;
&lt;h1&gt;Titolo del sito&lt;/h1&gt;
&lt;h2&gt;Sottotitolo&lt;/h2&gt;
&lt;/hgroup&gt;
&lt;/header&gt;</pre>
<h3>Article</h3>
<p>L&#8217;elemento &lt;article&gt; racchiude una porzione di codice semanticamente indipendente dal resto della pagina e sì possiamo utilizzarla al posto del solito &lt;div&gt; di wordpress <img src='http://www.howtoweb.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre>&lt;article&gt;
&lt;header&gt;
&lt;hgroup&gt;
&lt;h1&gt;Titolo del sito&lt;/h1&gt;
&lt;h2&gt;Sottotitolo&lt;/h2&gt;
&lt;/hgroup&gt;
&lt;/header&gt;
&lt;/article&gt;</pre>
<h3>Time</h3>
<p>L&#8217;elemento &lt;time&gt; rappresenta una data di pubblicazione.</p>
<pre>&lt;time datetime="2010-04-21" pubdate&gt;21 Aprile 2009&lt;/time&gt;</pre>
<p>L&#8217;attributo datetime accetta sia date che in aggiunta l&#8217;ora in formato leggibile per la macchina</p>
<p>L&#8217;attributo pubdate determina a scelta la data di pubblicazione di un contenuto specifico (se all&#8217;interno di &lt;article&gt;) o la data di pubblicazione della pagina se lasciato all&#8217;esterno.</p>
<h3>Nav</h3>
<p>L&#8217;elemento &lt;nav&gt; specifica una porzione di codice destinato ala navigazione per esempio la lista di un menu.</p>
<pre>&lt;nav&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;</pre>
<h3>Aside</h3>
<p>L&#8217;elemento &lt;aside&gt; viene utilizzato per definire una porzione di codice destinata correlata al contenuto ma comunque separata come per esempio una sidebar</p>
<h3>Footer</h3>
<p>L&#8217;elemento &lt;footer&gt; definisce una porzione di codice che rappresenta di fatto il piede della pagina o del contenuto specifico.</p>
<pre>&lt;footer&gt;Make with love and HTML5!&lt;/footer&gt;
</pre>
<p>un esempio completo della pagina è il seguente.</p>
<pre>&lt;!doctype html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;titolo della pagina&lt;/title&gt;
&lt;meta charset=utf-8&gt;
&lt;!--[if IE]&gt;
&lt;script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"&gt;
&lt;/script&gt;
&lt;![endif]--&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;header&gt;
&lt;hgroup&gt;
&lt;h1&gt;Titolo del sito&lt;/h1&gt;
&lt;h2&gt;Sottotitolo del sito&lt;/h2&gt;
&lt;/hgroup&gt;
&lt;/header&gt;
&lt;nav&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;article&gt;
&lt;header&gt;
&lt;hgroup&gt;
&lt;h1&gt;Titolo dell'articolo&lt;/h1&gt;
&lt;h2&gt;Sottotitolo dell'articolo&lt;/h2&gt;
&lt;/hgroup&gt;
&lt;/header&gt;
&lt;time datetime="2010-04-21" pubdate&gt;21 Aprile 2009&lt;/time&gt;
&lt;p&gt;Testo di prova&lt;/p&gt;
&lt;/article&gt;
&lt;aside&gt;contenuto relazionato ma indipendente&lt;/aside&gt;
&lt;footer&gt;Make with love and HTML 5&lt;/footer&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Un&#8217;ultima nota sui tag visti in questo articolo, la loro funzione è altamente semantica ed è quindi utile sapere come utilizzarli correttamente nel contesto specifico.<br />
Nel prossimo articolo parleremo della semantica nell&#8217;HTML 5 e dei cambiamenti che comporta.</p>
<p>Per oggi è tutto, tornate a trovarmi oppure abonatevi agli RSS per rimane aggornati sulle ultime novità.</p>
<p>Alla prossima!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/lezione-di-html-5-lezione-2-usare-i-nuovi-tag/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Importare dati da Excel a Mysql (compreso WordPress)</title>
		<link>http://www.howtoweb.it/articoli/importare-dati-da-excel-a-mysql-compreso-wordpress/</link>
		<comments>http://www.howtoweb.it/articoli/importare-dati-da-excel-a-mysql-compreso-wordpress/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 05:00:32 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=586</guid>
		<description><![CDATA[Normalmente un Cms è la soluzione più richiesta ed utilizzata nei progetti web, questo perchè permette una gestione facilitata dei contenuti anche per i non addetti ai lavori. Questo tipo di soluzione ha però un rovescio della medaglia, per consentire &#8230; <a href="http://www.howtoweb.it/articoli/importare-dati-da-excel-a-mysql-compreso-wordpress/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-589" title="excel_to_database" src="http://www.howtoweb.it/wp-content/uploads/2010/04/excel_to_database1.jpg" alt="" width="580" height="200" /></p>
<p>Normalmente un Cms è la soluzione più richiesta ed utilizzata nei progetti web, questo perchè permette una gestione facilitata dei contenuti anche per i non addetti ai lavori.</p>
<p>Questo tipo di soluzione ha però un rovescio della medaglia, per consentire l&#8217;aggiunta, la modifica e l&#8217;eliminazione dei contenuti questi sono gestiti singolarmente causando così evidenti rallentamenti nel caso sia necessario aggiungere una quantità considerevole e diversa di contenuti.</p>
<p>Per quanto sembri un problema da poco, rappresenta uno scoglio per ogni messa online, creato il sito e preparata la struttura normalmente ci si scontra con la triste realtà che scrivere testi richiede tempo, posticipando così il termine del progetto.</p>
<p>Come triste conseguenza ci si trova in ritardo rispetto alle scadenze ma con tutti i contenuti ancora da inserire ed un&#8217;ovvia lotteria per decidere chi dovrà farsi carico del lavoro di data entry.</p>
<p>In casi come questo l&#8217;unica soluzione intelligente che mi sento di suggerire è quella di suddividere il lavoro per renderlo più veloce e concludere quanto prima.</p>
<h3>Preparare il file Excel</h3>
<p>Un passo indispensabile per cercare di raggiungere il risultato è quella di richiede che i contenuti siano in qualche modo formattati, in modo che possano essere facilmente convertiti ed inseriti in modo massiccio.</p>
<p>Ad esempio, avere i contenuti del sito in un file excel già suddiviso in colonne è un grande vantaggio rispetto ad un file word.</p>
<h3>Esportare in CSV</h3>
<p>In questo modo è infatti possibile esportare il file in formato .csv che risulta più facile da importare nel database e di conseguenza nel sito che dobbiamo popolare di contenuti.</p>
<h3>Prima di procedere&#8230;</h3>
<p>E&#8217; opportuno fare una prova prima di intervenire su un sito online, create un backup dei files e del database, installate in locale modificando i parametri necessari e testate, anche in caso di test positivo salvate per precauzione una copia del database e dei files.</p>
<p>Nel caso sia una giornata sbagliata e per qualche motivo l&#8217;import non andasse a buon fine potete sempre ripristinare database e files e rimettere in piedi il sito in poco temo grazie ad una copia di backup.</p>
<h3>Importazione del CSV con phpmyadmin</h3>
<p><img class="alignnone size-full wp-image-590" title="phpmyadmin" src="http://www.howtoweb.it/wp-content/uploads/2010/04/phpmyadmin1.jpg" alt="" width="580" height="260" /></p>
<p>Per procedere in questo modo esistono diversi modi, un approccio molto diretto ci viene fornito direttamente da phpmyadmin che permette di importare direttamente un file csv all&#8217;interno di una specifica tabella.</p>
<h3>Importazione del CSV con script PHP</h3>
<p><img class="alignnone size-full wp-image-591" title="php-csv-parser" src="http://www.howtoweb.it/wp-content/uploads/2010/04/php-csv-parser1.jpg" alt="" width="580" height="260" /></p>
<p>Considerato che phpmyadmin è comunque un&#8217;applicazione scritta in php potremmo pensare di creare da zero uno script per l&#8217;importazione dei dati piuttosto che utilizzare uno script preconfezionato come ad esempio <a title="php csv parser" href="http://code.google.com/p/php-csv-parser/" target="_blank">php-csv-parser</a> che permette di inputare un file csv e di ottenere un array con i dati come output.</p>
<h3>Importazione del CSV su WordPress</h3>
<p><img class="alignnone size-full wp-image-592" title="wordpress" src="http://www.howtoweb.it/wp-content/uploads/2010/04/wordpress1.jpg" alt="" width="580" height="260" /></p>
<p>Nel caso in cui le vostre necessità siano più specifiche ed orientate all&#8217;import su un sito basato su wordpress consiglio <a title="wordpress csv importer" href="http://wordpress.org/extend/plugins/csv-importer/" target="_blank">csv importer</a>, un semplice plugin che facilita l&#8217;inserimento di articoli dal csv al database.</p>
<p>Le opzioni offerte facilitano l&#8217;importazione rintracciando automaticamente le categorie esistenti e creandone di nuove nel caso non esistano, oltre a questo è possibile limitare la ricerca ad una specifica categoria padre.Stesso discorso per l&#8217;autore, nel caso il dato sia omesso verrà utilizzato l&#8217;utente con il quale siete loggati.</p>
<p>Unici dati indispensabili per l&#8217;import sono a scelta il titolo, il contenuto o il contenuto estratto (excerpt per intenderci <img src='http://www.howtoweb.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>
<p>L&#8217;unico passaggio fondamentale per un&#8217;importazione di successo dventa quindi la formattazione del csv che deve separare i vari articoli su più linee e i vari dati tra apici doppi separati da virgola.</p>
<p>Nel caso abbiate qualche dubbio riguardo a come formattare il vostro file csv vi consiglio di visionare il file sample.csv all&#8217;interno della cartella del plugin.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/importare-dati-da-excel-a-mysql-compreso-wordpress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Migliorare i tempi di Rendering ottimizzando i selettori css</title>
		<link>http://www.howtoweb.it/articoli/migliorare-i-tempi-di-rendering-ottimizzando-i-selettori-css/</link>
		<comments>http://www.howtoweb.it/articoli/migliorare-i-tempi-di-rendering-ottimizzando-i-selettori-css/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 05:00:51 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=549</guid>
		<description><![CDATA[Ottimizzare un sito web per migliorane i tempi di caricamento è una pratica ormai comune, ma questo rappresenta solo una parte del lavoro necessario per ridurre i tempi di attesa per l&#8217;utente. Bisogna infatti ricordare, che le risorse che compongo &#8230; <a href="http://www.howtoweb.it/articoli/migliorare-i-tempi-di-rendering-ottimizzando-i-selettori-css/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-551" title="css_rendering_performance" src="http://www.howtoweb.it/wp-content/uploads/2010/04/css_rendering_performance1.jpg" alt="css_rendering_performance" width="580" height="127" /></p>
<p>Ottimizzare un sito web per migliorane i tempi di caricamento è una pratica ormai comune, ma questo rappresenta solo una parte del lavoro necessario per ridurre i tempi di attesa per l&#8217;utente.</p>
<p>Bisogna infatti ricordare, che le risorse che compongo una pagina web, oltre ad essere richieste al server e poi ricevute sulla macchina dell&#8217;utente devono in seguito essere renderizzate nel browser.</p>
<p>Di questo compito si occupa il motore di rendering del browser che andrà ad applicare i fogli di stile alla pagina caricata. Questa operazione di fatto utilizza le risorse macchina dell&#8217;utente e può essere rallentata dalla scarsa disponibilità di ram  al momento del rendering, oltre a ciò i tempi variano a seconda della complessità del sito e del software utilizzato.</p>
<p>Diventa quindi utile capire come ottimizzare i tempi di rendering della pagina attraverso una più attenta compilazione dei fogli di stile.</p>
<h3>Come vengono letti i selettori css</h3>
<p>Il motore di rendering legge i selettori css da destra verso sinistra, partendo dal primo selettore cerca un riscontro nella pagina HTML se non rintraccia l&#8217;elemento specifico passa al selettore successivo fino a che non rintraccia l&#8217;elemento su cui applicare la regola.</p>
<p>Prendiamo per esempio</p>
<pre>#menu li a{...}</pre>
<p>Il motore di rendering cercherà prima di tutto il selettore a (il primo selettore viene definito &#8220;chiave&#8221; o &#8220;key&#8221;), dopo cercherà il genitore li fino a che non trova riscontro nell&#8217;elemento menu.</p>
<p>Sulla base di quanto detto possiamo definire delle metodologie per ottimizzare i tempi di rendering dei fogli di stile</p>
<h3>Eliminare le regole non necessarie</h3>
<p>Se esistono regole che non vengono applicate ad alcun elemento è meglio eliminarle, anche se la regola non viene applicata il motore effettua comunque una ricerca dell&#8217;elemento gravando sui tempi di rendering. Oltre a questo non bisognerebbe mai tenere codice superfluo nei files,  questo aumenta inutilmente il peso del file e rende più complesso il mantenimento e la compilazione.</p>
<h3>Non utilizzare il selettore universale *</h3>
<p>Il selettore universale * seleziona tutti gli elementi presenti sulla pagina, è normalmente utilizzato per le regole di formattazione.</p>
<pre>*{margin:0;padding:0;}</pre>
<p>Considerato che non tutti gli elementi html hanno un valore di default per margine e padding  e che difficilmente si utilizzano tutti gli elementi HTML in una singola pagina, sarebbe utile specificare in altro modo questa regola evitando una così vasta ricerca al motore di rendering.</p>
<pre>h1,h2,h3,h4,h5,h6,p,
form,fieldset,label,input,textarea,select,button,
ul,ol,dl,dd,li{margin:0;padding:0;}</pre>
<p>Questa regola  formatta margine e padding per intestazioni, paragrafi, form, elementi del form e liste con maggiore specificità e minore dispendio di risorse.</p>
<h3>Limitare la discendenza</h3>
<p>Specificare una discendenza prolissa per una regola può essere utile in alcuni contesti per gestire la gerarchia delle regole, ma nella norma è possibile evitarlo.</p>
<p>Prendiamo per esempio</p>
<pre>body #content #menu li a{...}</pre>
<p>Essendo #menu un id, quindi un elemento univoco sulla pagina è possibile semplificare la regola in questo modo</p>
<pre>#menu li a{...}</pre>
<p>Ottimizzando così i tempi di ricerca dell&#8217;elemento da parte del motore di rendering</p>
<h3>Evitare espressioni ricorsive</h3>
<p>Quando si utilizzano classi e id si specificano implicitamente un gruppo di tag o un tag specifico rendendo così superflua una definizione del selettore tag</p>
<p>ad esempio</p>
<pre>div#menu{...}</pre>
<pre>li.selected{...}</pre>
<p>sono chiaramente ricorsivi e possono essere ottimizzati come segue</p>
<pre>#menu{...}</pre>
<pre>.selected{...}</pre>
<h3>Limitare l&#8217;utilizzo di :hover all&#8217;elemento &lt;a&gt;</h3>
<p>E&#8217; noto come l&#8217;utilizzo della pseudoclasse :hover su elementi diversi da &lt;a&gt; non sia supportato da Internet Explorer in assenza di un doctype strict e causa notevoli rallentamenti anche in presenza di questo specifico doctype.</p>
<p>Una  valida alternativa  è rappresentata dalla trasformazione dell&#8217;elemento &lt;a&gt; in elemento di blocco per una più semplice gestione da css.</p>
<pre>a{display:block;width:100px;height:100px;padding:5px;background:#000;}
a:hover{background:#c00;}</pre>
<h3>Specificare&#8230;sempre!</h3>
<p>Ottimizzare il rendering del css è più una metodologia che non una serie di soluzioni standard, i selettori hanno specificità diversa e questo riduce o aumenta i tempi di rcerca del motore di rendering della pagina.</p>
<p>Per esempio gli ID sono elementi univoci e in quanto tali hanno tempi di ricerca più ridotti di tutti gli altri selettori.</p>
<p>Le classi rappresentano gruppi di elementi, sono meno performanti degli ID ma più dei selettori tag.</p>
<p>I tag sono selettori meno specifici perchè si riferiscono a tutti i tag di quel tipo presenti sulla pagina.</p>
<p>I selettori fratello (+) o figlio (-) sono meno vantaggiosi di una classe o un id ma più vantaggiosi di un selettore tag perchè riducono la ricerca del motore a due elementi (il selettore e l&#8217;eventuale padre o fratello).</p>
<p>Sulla base di quanto detto potremmo pensare di rivedere per esempio la nostra regola di formattazione vista in precedenza da così:</p>
<pre>h1,h2,h3,h4,h5,h6,p,
form,fieldset,label,input,textarea,select,button,
ul,ol,dl,dd,li{margin:0;padding:0;}</pre>
<p>a così</p>
<pre>.format{margin:0;padding:0;}</pre>
<p>Modificando così la regola la ricerca viene limitata ad un gruppo più ristretto di elementi e la lunghezza della regola nel css viene ridotta.</p>
<p>Non a caso rintracciamo soluzioni analoghe in script molto utilizzati come ad esempio jquery ui che utilizza una classe .ui-helper-reset per la formattazione degli elementi.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/migliorare-i-tempi-di-rendering-ottimizzando-i-selettori-css/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

