<?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>Giovdi.it&#187; Giovdi.it &bull; Categoria: Programmazione: Web</title>
	<atom:link href="http://www.giovdi.it/post/category/programmazione/programmazione-web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.giovdi.it</link>
	<description>Internet con un nuovo punto di vista.</description>
	<lastBuildDate>Wed, 28 Jul 2010 09:24:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>@Anywhere e Twitter Developers: la svolta nelle applicazioni Twitter</title>
		<link>http://www.giovdi.it/post/1526/anywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter/</link>
		<comments>http://www.giovdi.it/post/1526/anywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter/#comments</comments>
		<pubDate>Mon, 10 May 2010 14:35:39 +0000</pubDate>
		<dc:creator>Giovdi</dc:creator>
				<category><![CDATA[Programmazione: Web]]></category>
		<category><![CDATA[@Anywhere]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Twitter API]]></category>

		<guid isPermaLink="false">http://www.giovdi.it/?p=1526</guid>
		<description><![CDATA[Il 15 marzo, Twitter ha presentato @Anywhere, un nuovo framework per realizzare applicazioni e widget per il proprio sito web con estrema semplicità. Per favorire la creazione delle applicazioni @Anywhere, Twitter ha messo a punto la nuova sezione Developers.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a  href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F1526%2Fanywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F1526%2Fanywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter%2F&amp;source=Giovdi&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><a  href="http://www.giovdi.it/wp-content/uploads/2010/05/2010-05-07-098.-Immagine-1.png"><img class="alignleft size-full wp-image-1527"  src="http://www.giovdi.it/wp-content/uploads/2010/05/2010-05-07-098.-Immagine-1.png" alt="" width="180" height="163" /></a>Il 15 marzo, Twitter ha presentato <strong><em>@Anywhere</em></strong>, un nuovo framework per realizzare applicazioni e widget per il proprio sito web con estrema semplicità.</p>
<p>Molte aziende proveranno in anteprima questo nuovo servizio: <em>YouTube, eBay, Amazon, Digg</em> sono solo alcuni dei 12 siti, la cui lista completa la trovate sul <em><a  href="http://blog.twitter.com/2010/03/anywhere.html">Twitter Blog</a></em>.</p>
<p>Per favorire la creazione delle applicazioni <em>@Anywhere</em>, Twitter ha messo a punto la nuova sezione <strong><em>Developers</em></strong>. Da qualche giorno, infatti, è online il sito <em><a  href="http://dev.twitter.com/">dev.twitter.com</a></em>.</p>
<p><span id="more-1526"></span></p>
<h2>Tutto in JavaScript</h2>
<p>La forza di <em>@Anywhere</em> è nella semplicità d’uso. <strong>Il linguaggio usato è JavaScript</strong> che è possbile implementare direttamente nelle pagine HTML tramite il tag <em>&lt;script&gt;</em>.</p>
<p><a  href="http://www.giovdi.it/wp-content/uploads/2010/05/2010-05-07-098.-Immagine-2.png"></a>Non solo, per includere il framework, <strong>non bisogna scaricare alcun file</strong>, ma basta un semplice link ad una pagina JavaScript reperibile direttamente online. Una bella comodità.</p>
<p style="text-align: center;">
<p style="text-align: center;"><a href="http://www.giovdi.it/wp-content/uploads/2010/05/2010-05-07-098.-Immagine-2.png"></a><a  href="http://www.giovdi.it/wp-content/uploads/2010/05/2010-05-07-098.-Immagine-2.png"><img class="size-full wp-image-1535 aligncenter"  src="http://www.giovdi.it/wp-content/uploads/2010/05/2010-05-07-098.-Immagine-2.png" alt="" width="405" height="133" /></a></p>
<p>Il <em>Twitter Developers</em> ci porta all’interno di questa piattaforma con alcuni esempi: linkare direttamente gli utenti mentre si scrive, visualizzare le Hovercards (vedi l’immagine sopra) o anche visualizzare un semplice pulsante per il follow… questi ed altri esempi sono disponibili nella pagina “<em><a  href="http://dev.twitter.com/anywhere/begin">Welcome to @Anywhere</a>”</em>.</p>
<h2>La nuova sezione Twitter Developers</h2>
<p style="text-align: center;"><em><a  href="http://www.giovdi.it/wp-content/uploads/2010/05/2010-05-07-098.-Immagine-3.png"><img class="size-full wp-image-1529 aligncenter"  src="http://www.giovdi.it/wp-content/uploads/2010/05/2010-05-07-098.-Immagine-3.png" alt="" width="526" height="101" /></a></em></p>
<p><em><a  href="http://dev.twitter.com/">Twitter Developers</a></em> racchiude in un unico spazio <strong>tutti gli strumenti per interfacciarsi con Twitter</strong>. La sezione <em><a  href="http://apiwiki.twitter.com/">API Wiki</a></em>, uno spazio dedicato alla documentazione ufficiale delle API, e la <em><a  href="http://twitter.com/oauth">Twitter Application Platform</a></em>, per la creazione e gestione delle applicazioni <em>OAuth</em>, sono state entrambe spostate in quest’area per essere più facilmente accessibili.</p>
<p>Su <em>Twitter Developers</em> è possibile scoprire il mondo delle Twitter API, verificarne il funzionamento e registrare le proprie applicazioni con pochi clic.</p>
<p>Tra le novità più interessanti che questa sezione ha introdotto vi è la possibilità di <strong>vedere lo status delle API</strong>, descrivendo eventuali problemi di reperibilità delle funzioni più usate dagli sviluppatori (soprattutto la funzione search che non è mai al 100% up)</p>
<h2>La Basic Authentication ormai è superata</h2>
<p>L’introduzione delle applicazioni <em>@Anywhere</em> e l’accostamento di queste con il sistema <em>OAuth</em> rendono, di fatto, la <strong><em>Basic Authentication</em> superflua</strong>. Proprio per questo motivo, <strong>il 30 giugno Twitter sospenderà questo metodo</strong> diventato con il passare degli anni obsoleto e sta chiedendo a tutti gli sviluppatori di passare ad un metodo più sicuro (<em>OAuth</em> o <em>@Anywhere</em>) prima di tale data, in modo da non rischiare “black-out”.</p>
<p>Questa scelta, comporterà la scomparsa della scritta “<em>pubblicato via API</em>” nei tweet e, sicuramente, comporterà non pochi problemi per coloro i quali devono affacciarsi per la prima volta nel mondo <em>OAuth</em>.</p>
<p>Per questo motivo pubblicherò nei prossimi giorni alcune guide utili per prepararsi al meglio a questo passaggio. Restate con noi <img src='http://www.giovdi.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Condividi:</strong>
</div>
<ul>
	<li class="sociablefirst"><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F1526%2Fanywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter%2F&#038;partner=sociable" title="Print"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F1526%2Fanywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter%2F&#038;partner=sociable" title="PDF"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/pdf.png" title="PDF" alt="PDF" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="mailto:?subject=%40Anywhere%20e%20Twitter%20Developers%3A%20la%20svolta%20nelle%20applicazioni%20Twitter&#038;body=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F1526%2Fanywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter%2F" title="email"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a></li>	<li><a style="float:left;margin:5px;" rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F1526%2Fanywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter%2F&#038;t=%40Anywhere%20e%20Twitter%20Developers%3A%20la%20svolta%20nelle%20applicazioni%20Twitter" title="Facebook"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F1526%2Fanywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter%2F&#038;title=%40Anywhere%20e%20Twitter%20Developers%3A%20la%20svolta%20nelle%20applicazioni%20Twitter" title="Google Buzz"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/buzz.png" title="Google Buzz" alt="Google Buzz" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F1526%2Fanywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter%2F&#038;t=%40Anywhere%20e%20Twitter%20Developers%3A%20la%20svolta%20nelle%20applicazioni%20Twitter" title="MySpace"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://segnalo.alice.it/post.html.php?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F1526%2Fanywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter%2F&#038;title=%40Anywhere%20e%20Twitter%20Developers%3A%20la%20svolta%20nelle%20applicazioni%20Twitter" title="Segnalo"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/segnalo.png" title="Segnalo" alt="Segnalo" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.wikio.it/vote?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F1526%2Fanywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter%2F" title="Wikio IT"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/wikio.png" title="Wikio IT" alt="Wikio IT" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://oknotizie.alice.it/post?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F1526%2Fanywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter%2F&#038;title=%40Anywhere%20e%20Twitter%20Developers%3A%20la%20svolta%20nelle%20applicazioni%20Twitter&#038;body=%40Anywhere%20e%20Twitter%20Developers%3A%20la%20svolta%20nelle%20applicazioni%20Twitter" title="OKNOtizie"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/oknotizie.png" title="OKNOtizie" alt="OKNOtizie" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&#038;url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F1526%2Fanywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter%2F&#038;title=%40Anywhere%20e%20Twitter%20Developers%3A%20la%20svolta%20nelle%20applicazioni%20Twitter&#038;bodytext=Il%2015%20marzo%2C%20Twitter%20ha%20presentato%20%40Anywhere%2C%20un%20nuovo%20framework%20per%20realizzare%20applicazioni%20e%20widget%20per%20il%20proprio%20sito%20web%20con%20estrema%20semplicit%C3%A0.%20Per%20favorire%20la%20creazione%20delle%20applicazioni%20%40Anywhere%2C%20Twitter%20ha%20messo%20a%20punto%20la%20nuova%20sezione%20Developers." title="Digg"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F1526%2Fanywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter%2F&#038;title=%40Anywhere%20e%20Twitter%20Developers%3A%20la%20svolta%20nelle%20applicazioni%20Twitter&#038;notes=Il%2015%20marzo%2C%20Twitter%20ha%20presentato%20%40Anywhere%2C%20un%20nuovo%20framework%20per%20realizzare%20applicazioni%20e%20widget%20per%20il%20proprio%20sito%20web%20con%20estrema%20semplicit%C3%A0.%20Per%20favorire%20la%20creazione%20delle%20applicazioni%20%40Anywhere%2C%20Twitter%20ha%20messo%20a%20punto%20la%20nuova%20sezione%20Developers." title="del.icio.us"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F1526%2Fanywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter%2F" title="Technorati"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&#038;bkmk=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F1526%2Fanywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter%2F&#038;title=%40Anywhere%20e%20Twitter%20Developers%3A%20la%20svolta%20nelle%20applicazioni%20Twitter&#038;annotation=Il%2015%20marzo%2C%20Twitter%20ha%20presentato%20%40Anywhere%2C%20un%20nuovo%20framework%20per%20realizzare%20applicazioni%20e%20widget%20per%20il%20proprio%20sito%20web%20con%20estrema%20semplicit%C3%A0.%20Per%20favorire%20la%20creazione%20delle%20applicazioni%20%40Anywhere%2C%20Twitter%20ha%20messo%20a%20punto%20la%20nuova%20sezione%20Developers." title="Google Bookmarks"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&#038;url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F1526%2Fanywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter%2F&#038;title=%40Anywhere%20e%20Twitter%20Developers%3A%20la%20svolta%20nelle%20applicazioni%20Twitter" title="Live"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>	<li class="sociablelast"><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://bookmarks.yahoo.com/toolbar/savebm?u=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F1526%2Fanywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter%2F&#038;t=%40Anywhere%20e%20Twitter%20Developers%3A%20la%20svolta%20nelle%20applicazioni%20Twitter&#038;opener=bm&#038;ei=UTF-8&#038;d=Il%2015%20marzo%2C%20Twitter%20ha%20presentato%20%40Anywhere%2C%20un%20nuovo%20framework%20per%20realizzare%20applicazioni%20e%20widget%20per%20il%20proprio%20sito%20web%20con%20estrema%20semplicit%C3%A0.%20Per%20favorire%20la%20creazione%20delle%20applicazioni%20%40Anywhere%2C%20Twitter%20ha%20messo%20a%20punto%20la%20nuova%20sezione%20Developers." title="Yahoo! Bookmarks"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a></li></ul>
</div>
<div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://www.giovdi.it/post/1526/anywhere-e-twitter-developers-la-svolta-nelle-applicazioni-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Il debug in PHP: la funzione debug_backtrace</title>
		<link>http://www.giovdi.it/post/709/il-debug-in-php-la-funzione-debug_backtrace/</link>
		<comments>http://www.giovdi.it/post/709/il-debug-in-php-la-funzione-debug_backtrace/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 00:16:53 +0000</pubDate>
		<dc:creator>Giovdi</dc:creator>
				<category><![CDATA[Programmazione: Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Risoluzione problemi]]></category>

		<guid isPermaLink="false">http://www.giovdi.it/?p=709</guid>
		<description><![CDATA[Questa sera mi sono imbattuto in un incubo per molti programmatori: c’è un problema, ma dov’è la causa? In PHP c’è una funzione della quale non tutti sanno l’esistenza, ma che tutti dovrebbero usare: sto parlando di backup_backtrace che permette di ricostruire l’intero percorso di una chiamata.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a  href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F709%2Fil-debug-in-php-la-funzione-debug_backtrace%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F709%2Fil-debug-in-php-la-funzione-debug_backtrace%2F&amp;source=Giovdi&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="alignleft size-full wp-image-706"  src="http://www.giovdi.it/wp-content/uploads/2009/12/2009-12-01-045.-Immagine-1.PNG" alt="2009-12-01 - 045. Immagine 1" width="160" height="121" />Questa sera mi sono imbattuto in un incubo per molti programmatori: <strong>c’è un problema, ma dov’è la causa?</strong></p>
<p>In PHP c’è una funzione della quale non tutti sanno l’esistenza, ma che tutti dovrebbero usare: sto parlando di <strong>backup_backtrace</strong> che permette di ricostruire l’intero percorso di una chiamata.</p>
<p>Vediamo qualche esempio.</p>
<p><span id="more-709"></span></p>
<h2>Un problema in una funzione</h2>
<p>Un esempio concreto dell’utilizzo di backup_backtrace è <strong>in una funzione chiamata</strong>. Supponiamo di avere la seguente funzione PHP:</p>
<pre class="brush: php;">function query ($post_query) {
	mysql_query($post_query);
	if (strlen(mysql_error()) &gt; 0) {
		$backtrace = debug_backtrace();
		$backtrace[0][file] = explode('\\', $backtrace[0][file]);
		echo 'Attenzione! Query non valida &lt;i&gt;'
			.$backtrace[0][file][count($backtrace[0][file]) - 1].':'.$backtrace[0][line]
			.'&lt;/i&gt; '.$post_query.' (&lt;i&gt;'.mysql_error().'&lt;/i&gt;)&lt;br&gt;';
		return 0;
	} else
		return 1;
}</pre>
<p>In questo caso l’uso di debug_backtrace è lampante: se la query genera un errore, <strong>prende</strong> <strong>il nome del file senza il percorso (riga 5 e riga 7), la linea che ha generato la chiamata alla funzione query e li visualizza</strong> insieme ad un messaggio di errore (riga 6), alla query passata ed all’errore in dettaglio (riga 8).</p>
<p>Avendo, per esempio il seguente codice nel file <em>test.php</em>:</p>
<pre class="brush: php; first-line: 42;">query ('UPDATE table SET t1 = s WHERE id = 1');</pre>
<p>verrà visualizzato un messaggio di errore come il seguente:</p>
<p>Attenzione! Query non valida <em>test.php:42</em> UPDATE table SET t1 = s WHERE id = 1 (<em>You have an error in your MySql syntax</em>)</p>
<p>o simile.</p>
<h2>Un altro esempio per errori generici</h2>
<p>Un altro esempio di problema potrebbe verificarsi durante <strong>l’esecuzione di uno script all’interno di una certa pagina</strong>. Qui possiamo aggiungere manualmente un richiamo alla nostra funzione e visualizzare i dettagli per il debug. Lo script che può tornarci utile è il seguente:</p>
<pre class="brush: php;">function getDebugBacktrace () {
	$NL = '&lt;br /&gt;';
	$dbgTrace = debug_backtrace();
	$dbgMsg .= $NL.&quot;Inizio debug backtrace:$NL&quot;;
	foreach ($dbgTrace as $dbgIndex =&gt; $dbgInfo)
		$dbgMsg .= &quot;\t livello &quot;.$dbgIndex.&quot; @ &quot;.$dbgInfo['file'].&quot;:&quot;.$dbgInfo['line'].&quot; -&gt; &quot;.$dbgInfo['function'].&quot;(&quot;.join(&quot;,&quot;,$dbgInfo['args']).&quot;)$NL&quot;;
	$dbgMsg .= &quot;Fine debug backtrace&quot;.$NL;
	return $dbgMsg;
}

echo &quot;Attenzione! Impossibile connettersi al database!&quot;;
echo getDebugBacktrace();</pre>
<p>Con questo algoritmo verrà visualizzato il seguente output:</p>
<p>Attenzione! Impossibile connettersi al database!<br />
Inizio debug backtrace:<br />
livello 0 @ D:\Siti web\Senzatitolo-1.php:12 -&gt; getDebugBacktrace()<br />
Fine debug backtrace</p>
<p>Il tutto è molto utile per ricercare errori <strong>soprattutto in righe che producono uno stesso output</strong>.</p>
<h2>La guida su php.net</h2>
<p>Sempre disponibile c’è la <strong>guida della funzione online</strong> consultabile gratuitamente all’indirizzo <a  href="http://www.php.net/manual/en/function.debug-backtrace.php">www.php.net</a>.</p>
<p>Avete altre idee di come utilizzare questa funzione? Scrivetele nei commenti <img src='http://www.giovdi.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Condividi:</strong>
</div>
<ul>
	<li class="sociablefirst"><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F709%2Fil-debug-in-php-la-funzione-debug_backtrace%2F&#038;partner=sociable" title="Print"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F709%2Fil-debug-in-php-la-funzione-debug_backtrace%2F&#038;partner=sociable" title="PDF"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/pdf.png" title="PDF" alt="PDF" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="mailto:?subject=Il%20debug%20in%20PHP%3A%20la%20funzione%20debug_backtrace&#038;body=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F709%2Fil-debug-in-php-la-funzione-debug_backtrace%2F" title="email"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a></li>	<li><a style="float:left;margin:5px;" rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F709%2Fil-debug-in-php-la-funzione-debug_backtrace%2F&#038;t=Il%20debug%20in%20PHP%3A%20la%20funzione%20debug_backtrace" title="Facebook"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F709%2Fil-debug-in-php-la-funzione-debug_backtrace%2F&#038;title=Il%20debug%20in%20PHP%3A%20la%20funzione%20debug_backtrace" title="Google Buzz"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/buzz.png" title="Google Buzz" alt="Google Buzz" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F709%2Fil-debug-in-php-la-funzione-debug_backtrace%2F&#038;t=Il%20debug%20in%20PHP%3A%20la%20funzione%20debug_backtrace" title="MySpace"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://segnalo.alice.it/post.html.php?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F709%2Fil-debug-in-php-la-funzione-debug_backtrace%2F&#038;title=Il%20debug%20in%20PHP%3A%20la%20funzione%20debug_backtrace" title="Segnalo"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/segnalo.png" title="Segnalo" alt="Segnalo" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.wikio.it/vote?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F709%2Fil-debug-in-php-la-funzione-debug_backtrace%2F" title="Wikio IT"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/wikio.png" title="Wikio IT" alt="Wikio IT" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://oknotizie.alice.it/post?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F709%2Fil-debug-in-php-la-funzione-debug_backtrace%2F&#038;title=Il%20debug%20in%20PHP%3A%20la%20funzione%20debug_backtrace&#038;body=Il%20debug%20in%20PHP%3A%20la%20funzione%20debug_backtrace" title="OKNOtizie"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/oknotizie.png" title="OKNOtizie" alt="OKNOtizie" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&#038;url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F709%2Fil-debug-in-php-la-funzione-debug_backtrace%2F&#038;title=Il%20debug%20in%20PHP%3A%20la%20funzione%20debug_backtrace&#038;bodytext=Questa%20sera%20mi%20sono%20imbattuto%20in%20un%20incubo%20per%20molti%20programmatori%3A%20c%E2%80%99%C3%A8%20un%20problema%2C%20ma%20dov%E2%80%99%C3%A8%20la%20causa%3F%20In%20PHP%20c%E2%80%99%C3%A8%20una%20funzione%20della%20quale%20non%20tutti%20sanno%20l%E2%80%99esistenza%2C%20ma%20che%20tutti%20dovrebbero%20usare%3A%20sto%20parlando%20di%20backup_backtrace%20che%20permette%20di%20ricostruire%20l%E2%80%99intero%20percorso%20di%20una%20chiamata." title="Digg"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F709%2Fil-debug-in-php-la-funzione-debug_backtrace%2F&#038;title=Il%20debug%20in%20PHP%3A%20la%20funzione%20debug_backtrace&#038;notes=Questa%20sera%20mi%20sono%20imbattuto%20in%20un%20incubo%20per%20molti%20programmatori%3A%20c%E2%80%99%C3%A8%20un%20problema%2C%20ma%20dov%E2%80%99%C3%A8%20la%20causa%3F%20In%20PHP%20c%E2%80%99%C3%A8%20una%20funzione%20della%20quale%20non%20tutti%20sanno%20l%E2%80%99esistenza%2C%20ma%20che%20tutti%20dovrebbero%20usare%3A%20sto%20parlando%20di%20backup_backtrace%20che%20permette%20di%20ricostruire%20l%E2%80%99intero%20percorso%20di%20una%20chiamata." title="del.icio.us"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F709%2Fil-debug-in-php-la-funzione-debug_backtrace%2F" title="Technorati"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&#038;bkmk=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F709%2Fil-debug-in-php-la-funzione-debug_backtrace%2F&#038;title=Il%20debug%20in%20PHP%3A%20la%20funzione%20debug_backtrace&#038;annotation=Questa%20sera%20mi%20sono%20imbattuto%20in%20un%20incubo%20per%20molti%20programmatori%3A%20c%E2%80%99%C3%A8%20un%20problema%2C%20ma%20dov%E2%80%99%C3%A8%20la%20causa%3F%20In%20PHP%20c%E2%80%99%C3%A8%20una%20funzione%20della%20quale%20non%20tutti%20sanno%20l%E2%80%99esistenza%2C%20ma%20che%20tutti%20dovrebbero%20usare%3A%20sto%20parlando%20di%20backup_backtrace%20che%20permette%20di%20ricostruire%20l%E2%80%99intero%20percorso%20di%20una%20chiamata." title="Google Bookmarks"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&#038;url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F709%2Fil-debug-in-php-la-funzione-debug_backtrace%2F&#038;title=Il%20debug%20in%20PHP%3A%20la%20funzione%20debug_backtrace" title="Live"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>	<li class="sociablelast"><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://bookmarks.yahoo.com/toolbar/savebm?u=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F709%2Fil-debug-in-php-la-funzione-debug_backtrace%2F&#038;t=Il%20debug%20in%20PHP%3A%20la%20funzione%20debug_backtrace&#038;opener=bm&#038;ei=UTF-8&#038;d=Questa%20sera%20mi%20sono%20imbattuto%20in%20un%20incubo%20per%20molti%20programmatori%3A%20c%E2%80%99%C3%A8%20un%20problema%2C%20ma%20dov%E2%80%99%C3%A8%20la%20causa%3F%20In%20PHP%20c%E2%80%99%C3%A8%20una%20funzione%20della%20quale%20non%20tutti%20sanno%20l%E2%80%99esistenza%2C%20ma%20che%20tutti%20dovrebbero%20usare%3A%20sto%20parlando%20di%20backup_backtrace%20che%20permette%20di%20ricostruire%20l%E2%80%99intero%20percorso%20di%20una%20chiamata." title="Yahoo! Bookmarks"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a></li></ul>
</div>
<div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://www.giovdi.it/post/709/il-debug-in-php-la-funzione-debug_backtrace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Realizzare un robot per pagine che si aggiornano automaticamente</title>
		<link>http://www.giovdi.it/post/354/realizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente/</link>
		<comments>http://www.giovdi.it/post/354/realizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 23:03:28 +0000</pubDate>
		<dc:creator>Giovdi</dc:creator>
				<category><![CDATA[Guide pratiche]]></category>
		<category><![CDATA[Programmazione: Web]]></category>
		<category><![CDATA[Programmazione: Web server]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.giovdi.it/?p=354</guid>
		<description><![CDATA[Alcuni servizi necessitano di funzioni e informazioni che, per essere completi, devono provenire da altri siti web. Se queste informazioni, poi, sono in continuo aggiornamento, le possibilità diventano 2: inserire le novità manualmente sul sito oppure realizzare un robot che aggiorna il tutto al posto nostro.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a  href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F354%2Frealizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F354%2Frealizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente%2F&amp;source=Giovdi&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p><img class="alignleft size-full wp-image-391"  src="http://www.giovdi.it/wp-content/uploads/2009/10/2009-10-04-027.-Immagine-1.jpg" alt="2009-10-04 - 027. Immagine 1" width="127" height="180" />Alcuni servizi necessitano di funzioni e informazioni che, per essere completi, devono provenire da altri siti web. Se queste informazioni, poi, sono in continuo aggiornamento, le possibilità diventano 2: inserire le novità manualmente sul sito oppure <strong>realizzare un robot che aggiorna il tutto al posto nostro</strong>.</p>
<p>Entriamo nel dettaglio della seconda scelta.</p>
<p><span id="more-354"></span></p>
<h2>Passi da seguire</h2>
<p>Innanzitutto bisogna pensare che la realizzazione di un robot non è una cosa <strong>né immediata né tantomeno</strong> <strong>semplice</strong>. Possiamo dividere il nostro lavoro in 5 compiti:</p>
<ul>
<li>Individuazione delle pagine da acquisire</li>
<li>Posizionamento del cursore all’interno della pagina</li>
<li>Acquisizione dati e spostamento del cursore</li>
<li>Operazioni finali sul codice</li>
<li>Impostare il crontab</li>
</ul>
<p>A seconda delle nostre esigenze, questi compiti possono essere più o meno complessi.</p>
<p>In questo articolo verrà dimostrato come realizzare un semplice robot che acquisisce tutte le headlines del sito <em>Corriere.it</em></p>
<h2>Individuazione delle pagine da acquisire</h2>
<p>Precisiamo una cosa: realizzare un robot <strong>non è sempre possibile</strong>. In alcuni siti è espressamente vietato, mentre per altri bisogna tenere in considerazione i diritti d’autore. Quindi fate attenzione su cosa volete concentrarvi.</p>
<p>Il primo compito è <strong>l’individuazione delle pagine da acquisire</strong>. Nel nostro caso, ci focalizzeremo sulla home page e l’acquisiremo tramite il comando <em>file_get_contents</em>:</p>
<pre class="brush: php; light: true;">$content = file_get_contents(&quot;http://www.corriere.it/index.shtml&quot;);
</pre>
<p>oppure tramite una chiamata socket con <em>fsockopen</em>:</p>
<pre class="brush: php; toolbar: true;">//connessione al sito:
$viart_xml = fsockopen(&quot;www.corriere.it&quot;, 80, $errno, $errstr, 12);
	// indicazione della pagina da chiamare:
	fputs($viart_xml, &quot;GET /index.shtml HTTP/1.0\r\n&quot;);
	fputs($viart_xml, &quot;Host: www. corriere.it\r\n&quot;);
	// referer da simulare, per alcuni siti è obbligatorio:
	fputs($viart_xml, &quot;Referer: http://www.example.com\r\n&quot;);
	fputs($viart_xml, &quot;User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n\r\n&quot;);
	if (!$viart_xml) {
		die(&quot;$errstr ($errno)&lt;br /&gt;\n&quot;);
	} else {
	$content = &quot;&quot;;
	while (!feof($viart_xml)) {
		$content .= fgets($viart_xml, 1000000);
	}
	fclose($viart_xml);
}</pre>
<p>La nostra pagina sarà codificata in HTML e sarà assegnata per intero alla variabile <em>content</em>.</p>
<h2>Posizionamento del cursore all’interno della pagina</h2>
<p>Acquisita la pagina, sarà necessario <strong>spostarci all’interno di essa</strong> e qui entra in gioco una funzione che può esserci molto utile:</p>
<pre class="brush: php;">function strlimit($text, $text_init = &quot;&quot;, $text_end = &quot;&quot;, $pos_init = 0)
{
	if (strlen($text_end) &gt; 0)
		return substr($text, strlen($text_init) &gt; 0 ? $pos = strpos($text, $text_init, $pos_init) + strlen($text_init) : 0, strpos($text, $text_end, $pos) - $pos);
	else
		return substr($text, strlen($text_init) &gt; 0 ? strpos($text, $text_init, $pos_init) + strlen($text_init) : 0);
}</pre>
<p>La funzione <em>strlimit</em>, realizzata ad hoc, ci permette di selezionare un testo all’interno di una variabile delimitato da <em>text_init</em> e <em>text_end</em> facendo partire la scansione da <em>pos_init</em>. Ad esempio:</p>
<pre class="brush: php;">$var = '1234564567890';
echo strlimit($var, '3', '8');    //output: 4564567
echo strlimit($var, '5', '8');    //output: 674567
echo strlimit($var, '5', '8', 6);     //output: 67</pre>
<p>La <strong>selezione del testo</strong> può avvenire in due modi: permanentemente e temporaneamente. Una <strong>selezione permanente</strong> ci permette di gestire una parte di codice più piccola che non presenterà ambiguità, mentre una <strong>temporanea</strong> ci permette di operare senza alterare la sorgente.</p>
<p>Nel nostro esempio possiamo vedere come applicare questa selezione, effettuando le seguenti operazioni:</p>
<pre class="brush: php;">// La variabile con tutto il contenuto della pagina ricordo che è $content
$content = strlimit($content, 'maincontent', 'vaschetta3');
// questa è una selezione permanente, in cui l’html viene limitato alla parte sinistra della pagina, da maincontent (la prima notizia) a vaschetta3 (le 3 immagini in fondo)
// analizzando il codice si può notare che ogni articolo inizia con un ‘homearticle-box’ e con la funzione explode siamo in grado di metterli in un array:
$articles = explode('homearticle-box', $content);</pre>
<h2>Acquisizione dati e spostamento del cursore</h2>
<p>Ora che abbiamo tutti gli articoli, possiamo <strong>muoverci all’interno di essi per</strong> <strong>acquisirne i dettagli</strong> quali titolo, sottotitolo e occhiello. Qui entrano in gioco le selezioni temporanee che lasciano intatto il codice sorgente. Vediamo come (per semplificare ipotizzo che non ci siano news straordinarie):</p>
<pre class="brush: php;">for ($i = 0; $i &lt; count($articles); $i++) {
	$subtitle = strlimit($articles[$i], '&lt;p&gt;', '&lt;/p&gt;');
	$title = strlimit($articles[$i], '&lt;h2&gt;', '&lt;/h2&gt;');
	$occh = strlimit($articles[$i], 'class=&quot;hour&quot;', '&lt;/p&gt;');
	// …
	// qui ora vengono effettuate tutte quelle operazioni di pulizia e sistemazione dei tre oggetti, quail rimozione link, tag ecc. . Al termine assegniamo il risultato ad una variabile risultato.
	$risultato[$i] = array(
		'sottotitolo' =&gt; $subtitle,
		'titolo' =&gt; $title,
		'occhiello' =&gt; $occh
	);
}
</pre>
<p>A questo punto avremo un <strong>array risultato</strong> con tutti gli articoli pronti per essere visualizzati o salvati in un database.</p>
<h2>Operazioni finali</h2>
<p>Ora sarà possibile gestire l&#8217;array per <strong>visualizzare a video</strong> le informazioni acquisite o <strong>salvarle in un database</strong>. Per quest&#8217;ultima operazione è consigliabile controllare che ogni articolo non sia già inserito per evitare doppioni facendo un controllo sul link (che rimane fisso una volta scritto).</p>
<p>Un esempio potrebbe essere la visualizzazione degli articoli:</p>
<pre class="brush: php;">for ($i = 0; $i &lt; count ($risultato); $i++) {
	echo '&lt;h3&gt;'.$risultato[$i]['sottotitolo'].'&lt;/h3&gt;'.&quot;\n&quot;;
	echo '&lt;h1&gt;'.$risultato[$i]['titolo'].'&lt;/h1&gt;' .&quot;\n&quot;;
	echo '&lt;h2&gt;'.$risultato[$i]['occhiello'].'&lt;/h2&gt;' .&quot;\n&quot;;
	echo '&lt;hr&gt;'.&quot;\n\n&quot;;
}
</pre>
<h2>Impostare il crontab</h2>
<p><img class="alignleft size-full wp-image-395"  src="http://www.giovdi.it/wp-content/uploads/2009/10/2009-10-04-027.-Immagine-2.PNG" alt="2009-10-04 - 027. Immagine 2" width="182" height="128" />Completata la realizzazione della pagina si passa <strong>all’impostazione del cron</strong>. Ogni piattaforma ha proprie opzioni per mettere a punto questo strumento.</p>
<p>Per eseguire lo script php, di norma, occorre impostare il task in modo che esegua <strong>l’azione</strong>:</p>
<p><strong><br />
</strong></p>
<pre class="brush: php; light: true;">cd /var/www/vhosts/example.com/httpdocs; php -q robot.php
</pre>
<p>oppure un’azione simile in base alle impostazioni del server.</p>
<p>Un’ottima referenza per <strong>gli orari</strong> dei task, invece, è la <a  href="http://it.wikipedia.org/wiki/Crontab">Wikipedia</a> che spiega con molti esempi come impostarli.</p>
<p>Impostato il cron, è consigliabile effettuare dei <strong>test</strong> per vedere se il tutto funzionerà a dovere, semplicemente digitando nel proprio browser l’indirizzo del robot e verificando che il risultato sia quello previsto.</p>
<p>Questo è quanto, se avete suggerimenti o informazioni commentate.</p>
<p><em>(Immagine alta: Flicker, à voir etc&#8230;)</em></p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Condividi:</strong>
</div>
<ul>
	<li class="sociablefirst"><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F354%2Frealizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente%2F&#038;partner=sociable" title="Print"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F354%2Frealizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente%2F&#038;partner=sociable" title="PDF"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/pdf.png" title="PDF" alt="PDF" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="mailto:?subject=Realizzare%20un%20robot%20per%20pagine%20che%20si%20aggiornano%20automaticamente&#038;body=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F354%2Frealizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente%2F" title="email"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a></li>	<li><a style="float:left;margin:5px;" rel="nofollow"  href="javascript:AddToFavorites();" title="Add to favorites"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/addtofavorites.png" title="Add to favorites" alt="Add to favorites" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F354%2Frealizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente%2F&#038;t=Realizzare%20un%20robot%20per%20pagine%20che%20si%20aggiornano%20automaticamente" title="Facebook"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F354%2Frealizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente%2F&#038;title=Realizzare%20un%20robot%20per%20pagine%20che%20si%20aggiornano%20automaticamente" title="Google Buzz"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/buzz.png" title="Google Buzz" alt="Google Buzz" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F354%2Frealizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente%2F&#038;t=Realizzare%20un%20robot%20per%20pagine%20che%20si%20aggiornano%20automaticamente" title="MySpace"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://segnalo.alice.it/post.html.php?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F354%2Frealizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente%2F&#038;title=Realizzare%20un%20robot%20per%20pagine%20che%20si%20aggiornano%20automaticamente" title="Segnalo"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/segnalo.png" title="Segnalo" alt="Segnalo" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.wikio.it/vote?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F354%2Frealizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente%2F" title="Wikio IT"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/wikio.png" title="Wikio IT" alt="Wikio IT" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://oknotizie.alice.it/post?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F354%2Frealizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente%2F&#038;title=Realizzare%20un%20robot%20per%20pagine%20che%20si%20aggiornano%20automaticamente&#038;body=Realizzare%20un%20robot%20per%20pagine%20che%20si%20aggiornano%20automaticamente" title="OKNOtizie"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/oknotizie.png" title="OKNOtizie" alt="OKNOtizie" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&#038;url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F354%2Frealizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente%2F&#038;title=Realizzare%20un%20robot%20per%20pagine%20che%20si%20aggiornano%20automaticamente&#038;bodytext=Alcuni%20servizi%20necessitano%20di%20funzioni%20e%20informazioni%20che%2C%20per%20essere%20completi%2C%20devono%20provenire%20da%20altri%20siti%20web.%20Se%20queste%20informazioni%2C%20poi%2C%20sono%20in%20continuo%20aggiornamento%2C%20le%20possibilit%C3%A0%20diventano%202%3A%20inserire%20le%20novit%C3%A0%20manualmente%20sul%20sito%20oppure%20realizzare%20un%20robot%20che%20aggiorna%20il%20tutto%20al%20posto%20nostro." title="Digg"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F354%2Frealizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente%2F&#038;title=Realizzare%20un%20robot%20per%20pagine%20che%20si%20aggiornano%20automaticamente&#038;notes=Alcuni%20servizi%20necessitano%20di%20funzioni%20e%20informazioni%20che%2C%20per%20essere%20completi%2C%20devono%20provenire%20da%20altri%20siti%20web.%20Se%20queste%20informazioni%2C%20poi%2C%20sono%20in%20continuo%20aggiornamento%2C%20le%20possibilit%C3%A0%20diventano%202%3A%20inserire%20le%20novit%C3%A0%20manualmente%20sul%20sito%20oppure%20realizzare%20un%20robot%20che%20aggiorna%20il%20tutto%20al%20posto%20nostro." title="del.icio.us"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F354%2Frealizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente%2F" title="Technorati"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&#038;bkmk=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F354%2Frealizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente%2F&#038;title=Realizzare%20un%20robot%20per%20pagine%20che%20si%20aggiornano%20automaticamente&#038;annotation=Alcuni%20servizi%20necessitano%20di%20funzioni%20e%20informazioni%20che%2C%20per%20essere%20completi%2C%20devono%20provenire%20da%20altri%20siti%20web.%20Se%20queste%20informazioni%2C%20poi%2C%20sono%20in%20continuo%20aggiornamento%2C%20le%20possibilit%C3%A0%20diventano%202%3A%20inserire%20le%20novit%C3%A0%20manualmente%20sul%20sito%20oppure%20realizzare%20un%20robot%20che%20aggiorna%20il%20tutto%20al%20posto%20nostro." title="Google Bookmarks"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>	<li><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&#038;url=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F354%2Frealizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente%2F&#038;title=Realizzare%20un%20robot%20per%20pagine%20che%20si%20aggiornano%20automaticamente" title="Live"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>	<li class="sociablelast"><a  style="float:left;margin:5px;" rel="nofollow" target="_blank" href="http://bookmarks.yahoo.com/toolbar/savebm?u=http%3A%2F%2Fwww.giovdi.it%2Fpost%2F354%2Frealizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente%2F&#038;t=Realizzare%20un%20robot%20per%20pagine%20che%20si%20aggiornano%20automaticamente&#038;opener=bm&#038;ei=UTF-8&#038;d=Alcuni%20servizi%20necessitano%20di%20funzioni%20e%20informazioni%20che%2C%20per%20essere%20completi%2C%20devono%20provenire%20da%20altri%20siti%20web.%20Se%20queste%20informazioni%2C%20poi%2C%20sono%20in%20continuo%20aggiornamento%2C%20le%20possibilit%C3%A0%20diventano%202%3A%20inserire%20le%20novit%C3%A0%20manualmente%20sul%20sito%20oppure%20realizzare%20un%20robot%20che%20aggiorna%20il%20tutto%20al%20posto%20nostro." title="Yahoo! Bookmarks"><img src="http://www.giovdi.it/wp-content/plugins/sociable/images/yahoomyweb.png" title="Yahoo! Bookmarks" alt="Yahoo! Bookmarks" class="sociable-hovers" /></a></li></ul>
</div>
<div style='clear:both'></div>]]></content:encoded>
			<wfw:commentRss>http://www.giovdi.it/post/354/realizzare-un-robot-per-pagine-che-si-aggiornano-automaticamente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
