<?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>dev/null &#187; PHP</title>
	<atom:link href="http://devnull.fuoriradio.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://devnull.fuoriradio.com</link>
	<description>appunti interessanti e non di un programmatore</description>
	<lastBuildDate>Tue, 19 Apr 2011 15:22:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Classe DB mysql con supporto di memcached.</title>
		<link>http://devnull.fuoriradio.com/2010/10/04/classe-db-mysql-con-supporto-di-memcached/</link>
		<comments>http://devnull.fuoriradio.com/2010/10/04/classe-db-mysql-con-supporto-di-memcached/#comments</comments>
		<pubDate>Mon, 04 Oct 2010 13:18:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://devnull.fuoriradio.com/?p=412</guid>
		<description><![CDATA[Ho scritto una classe (ed un articolo) mysql che supporta memcached, la trovate sul neonato Blog di Wardrome cliccando sul link seguente: Give me a mysql connection and I will move the galaxy]]></description>
			<content:encoded><![CDATA[<p>Ho scritto una classe (ed un articolo) mysql che supporta memcached, la trovate sul neonato <a href="http://blog.wardrome.com">Blog di Wardrome</a> cliccando sul link seguente: <a href="http://blog.wardrome.com/2010/10/give-me-a-mysql-connection-and-i-will-move-the-galaxy/">Give me a mysql connection and I will move the galaxy</a></p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdevnull.fuoriradio.com%2F2010%2F10%2F04%2Fclasse-db-mysql-con-supporto-di-memcached%2F&amp;layout=button_count&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://devnull.fuoriradio.com/2010/10/04/classe-db-mysql-con-supporto-di-memcached/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installare XCache su Debian Lenny</title>
		<link>http://devnull.fuoriradio.com/2010/02/05/installare-xcache-su-debian-lenny/</link>
		<comments>http://devnull.fuoriradio.com/2010/02/05/installare-xcache-su-debian-lenny/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 18:52:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[opcode cache]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[xcache]]></category>

		<guid isPermaLink="false">http://devnull.fuoriradio.com/2010/02/05/installare-xcache-su-debian-lenny/</guid>
		<description><![CDATA[Xcache è una opcode cache molto performante per php. Per installarla su Debian Lenny (Su Etch non c&#8217;è il pacchetto, ho dovuto scaricarla e compilarla) sudo aptitude install php5-xcache dopo editate il vostro php.ini e alla fine inserite le righe seguenti: extension=xcache.so &#160; &#91;xcache&#93; ; ini only settings, all the values here is default unless [...]]]></description>
			<content:encoded><![CDATA[<p>Xcache è una opcode cache molto performante per php.</p>
<p>Per installarla su Debian Lenny (Su Etch non c&#8217;è il pacchetto, ho dovuto scaricarla e compilarla)</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> php5-xcache</pre></div></div>

<p><span id="more-232"></span></p>
<p>dopo editate il vostro php.ini e alla fine inserite le righe seguenti:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">extension</span>=xcache.so
&nbsp;
<span style="color: #7a0874; font-weight: bold;">&#91;</span>xcache<span style="color: #7a0874; font-weight: bold;">&#93;</span>
; ini only settings, all the values here is default unless explained
&nbsp;
; <span style="color: #000000; font-weight: bold;">select</span> low level shm<span style="color: #000000; font-weight: bold;">/</span>allocator scheme implemenation
xcache.shm_scheme =        <span style="color: #ff0000;">&quot;mmap&quot;</span>
; to disable: xcache.size=<span style="color: #000000;">0</span>
; to <span style="color: #7a0874; font-weight: bold;">enable</span> : xcache.size=64M etc <span style="color: #7a0874; font-weight: bold;">&#40;</span>any <span style="color: #c20cb9; font-weight: bold;">size</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> and your system mmap allows
xcache.size  =               64M
; <span style="color: #000000; font-weight: bold;">set</span> to cpu count <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>proc<span style="color: #000000; font-weight: bold;">/</span>cpuinfo <span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-c</span> processor<span style="color: #7a0874; font-weight: bold;">&#41;</span>
xcache.count =                 <span style="color: #000000;">8</span>
; just a <span style="color: #7a0874; font-weight: bold;">hash</span> hints, you can always store count<span style="color: #7a0874; font-weight: bold;">&#40;</span>items<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000; font-weight: bold;">&gt;</span> slots
xcache.slots =                8K
; ttl of the cache item, <span style="color: #000000;">0</span>=forever
xcache.ttl   =                 <span style="color: #000000;">0</span>
; interval of <span style="color: #c20cb9; font-weight: bold;">gc</span> scanning expired items, <span style="color: #000000;">0</span>=no scan, other values is <span style="color: #000000; font-weight: bold;">in</span> seconds
xcache.gc_interval =           <span style="color: #000000;">0</span>
&nbsp;
; same <span style="color: #c20cb9; font-weight: bold;">as</span> aboves but <span style="color: #000000; font-weight: bold;">for</span> variable cache
xcache.var_size  =            4M
xcache.var_count =             <span style="color: #000000;">1</span>
xcache.var_slots =            8K
; default ttl
xcache.var_ttl   =             <span style="color: #000000;">0</span>
xcache.var_maxttl   =          <span style="color: #000000;">0</span>
xcache.var_gc_interval =     <span style="color: #000000;">300</span>
&nbsp;
xcache.test =                Off
; N<span style="color: #000000; font-weight: bold;">/</span>A <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>zero
xcache.readonly_protection = Off
; <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #000000; font-weight: bold;">*</span>nix, xcache.mmap_path is a <span style="color: #c20cb9; font-weight: bold;">file</span> path, not directory.
; Use something like <span style="color: #ff0000;">&quot;/tmp/xcache&quot;</span> <span style="color: #000000; font-weight: bold;">if</span> you want to turn on ReadonlyProtection
; <span style="color: #000000;">2</span> group of php won<span style="color: #ff0000;">'t share the same /tmp/xcache
; for win32, xcache.mmap_path=anonymous map name, not file path
xcache.mmap_path =    &quot;/dev/zero&quot;
&nbsp;
; leave it blank(disabled) or &quot;/tmp/phpcore/&quot;
; make sure it'</span>s writable by php <span style="color: #7a0874; font-weight: bold;">&#40;</span>without checking open_basedir<span style="color: #7a0874; font-weight: bold;">&#41;</span>
xcache.coredump_directory =   <span style="color: #ff0000;">&quot;&quot;</span>
&nbsp;
; per request settings
xcache.cacher =               On
xcache.stat   =               On
xcache.optimizer =           Off</pre></div></div>

<p><div style="text-align: center"><script type="text/javascript"><!--
google_ad_client = "pub-9763589373223061";
/* 468x60, devnull */
google_ad_slot = "9717154544";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdevnull.fuoriradio.com%2F2010%2F02%2F05%2Finstallare-xcache-su-debian-lenny%2F&amp;layout=button_count&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://devnull.fuoriradio.com/2010/02/05/installare-xcache-su-debian-lenny/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Le slide di HipHop for PHP Tech Tasting</title>
		<link>http://devnull.fuoriradio.com/2010/02/05/le-slide-di-hiphop-for-php-tech-tasting/</link>
		<comments>http://devnull.fuoriradio.com/2010/02/05/le-slide-di-hiphop-for-php-tech-tasting/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 14:30:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[hiphop]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://devnull.fuoriradio.com/?p=224</guid>
		<description><![CDATA[HipHop for PHP Tech Tasting]]></description>
			<content:encoded><![CDATA[<p><a title="View HipHop for PHP Tech Tasting on Scribd" href="http://www.scribd.com/doc/26375470/HipHop-for-PHP-Tech-Tasting" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;">HipHop for PHP Tech Tasting</a> <object id="doc_642166514679047" name="doc_642166514679047" height="600" width="100%" type="application/x-shockwave-flash" data="http://d1.scribdassets.com/ScribdViewer.swf" style="outline:none;" ><param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf"><param name="wmode" value="opaque"><param name="bgcolor" value="#ffffff"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><param name="FlashVars" value="document_id=26375470&#038;access_key=key-14w9gnkcl70nrxpv3aet&#038;page=1&#038;viewMode=slideshow"></object></p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdevnull.fuoriradio.com%2F2010%2F02%2F05%2Fle-slide-di-hiphop-for-php-tech-tasting%2F&amp;layout=button_count&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://devnull.fuoriradio.com/2010/02/05/le-slide-di-hiphop-for-php-tech-tasting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook Technology Tasting &#8211; HipHop for PHP</title>
		<link>http://devnull.fuoriradio.com/2010/02/03/facebook-technology-tasting-hiphop-for-php/</link>
		<comments>http://devnull.fuoriradio.com/2010/02/03/facebook-technology-tasting-hiphop-for-php/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 12:15:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Novità]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[hiphop]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://devnull.fuoriradio.com/?p=197</guid>
		<description><![CDATA[Introducing HipHop for PHP at Facebook HQ in Palo Alto, CA.]]></description>
			<content:encoded><![CDATA[<blockquote><p>Introducing HipHop for PHP at Facebook HQ in Palo Alto, CA. </p></blockquote>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="386" id="utv904292" name="utv_n_214539"><param name="flashvars" value="loc=%2F&amp;autoplay=false&amp;vid=4409735" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.ustream.tv/flash/video/4409735" /><embed flashvars="loc=%2F&amp;autoplay=false&amp;vid=4409735" width="480" height="386" allowfullscreen="true" allowscriptaccess="always" id="utv904292" name="utv_n_214539" src="http://www.ustream.tv/flash/video/4409735" type="application/x-shockwave-flash" /></object></p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdevnull.fuoriradio.com%2F2010%2F02%2F03%2Ffacebook-technology-tasting-hiphop-for-php%2F&amp;layout=button_count&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://devnull.fuoriradio.com/2010/02/03/facebook-technology-tasting-hiphop-for-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Il testo integrale in italiano della presentazione di HipHop-PHP</title>
		<link>http://devnull.fuoriradio.com/2010/02/02/il-testo-integrale-in-italiano-della-presentazione-di-hiphop-php/</link>
		<comments>http://devnull.fuoriradio.com/2010/02/02/il-testo-integrale-in-italiano-della-presentazione-di-hiphop-php/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 19:13:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Novità]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[hiphop]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://devnull.fuoriradio.com/?p=187</guid>
		<description><![CDATA[Uno dei valori chiave di Facebook è quello di muoversi in fretta. Negli ultimi sei anni, siamo stati in grado di realizzare un servizio molto rapido al ritmo di sviluppo che PHP offre. Come linguaggio di programmazione, PHP è semplice. Semplice da imparare, semplice da scrivere, semplice da leggere e semplice per eseguire il debug. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://devnull.fuoriradio.com/wp-content/uploads/2010/02/HipHop_logo_white.png" alt="HipHop-PHP Loho" title="HipHop_logo_white" width="213" height="278" class="alignleft size-full wp-image-247" /><br />
Uno dei valori chiave di Facebook è quello di muoversi in fretta.<br />
Negli ultimi sei anni, siamo stati in grado di realizzare un servizio molto rapido al ritmo di sviluppo che PHP offre.<br />
Come linguaggio di programmazione, PHP è semplice.<br />
Semplice da imparare, semplice da scrivere, semplice da leggere e semplice per eseguire il debug.<br />
Siamo in grado di ottenere nuovi ingegneri competenti sulla piattaforma di Facebook molto più rapidamente con PHP che con altri linguaggi , ciò ci permette di innovare più rapidamente.<br />
Oggi sono felice di condividere il progetto di un piccolo gruppo di persone straordinarie con cui ho lavorato per due anni; HipHop per PHP.<br />
Con HipHop abbiamo ridotto l&#8217;utilizzo della CPU sui nostri server Web in media di circa il cinquanta per cento, a seconda della pagina.<br />
Meno CPU significa un numero inferiore di server, il che significa meno overhead.<br />
Questo progetto ha avuto un impatto enorme su Facebook. </p>
<p><span id="more-187"></span><br />
Speriamo che il Web in generale possa beneficiare di HipHop, così stiamo rilasciandolo come open source, questa sera, nella speranza che esso comporti una nuova attenzione verso l&#8217;ottimizzazione di siti web complessi con PHP.<br />
HipHop ci ha mostrato risultati incredibili, ma non è certamente completa e sarà meglio usarla in versione beta all&#8217;inizio.</p>
<p>HipHop per PHP non è tecnicamente un compilatore.<br />
Piuttosto si tratta di un &#8220;trasformatore&#8221; di codice sorgente.<br />
HipHop trasforma il codice sorgente di programmazione PHP altamente ottimizzato in C++ e poi usa g++ per compilarlo.<br />
HipHop esegue il codice sorgente in modo semanticamente equivalenti (abbiamo sacrificato alcune caratteristiche usate raramente &#8211; come eval () -) in cambio di prestazioni migliorate.<br />
HipHop comprende un trasformatore di codice, una nuova implementazione del sistema di runtime di PHP, e una riscrittura di verie comuni estensioni PHP per sfruttare queste ottimizzazioni delle prestazioni.</p>
<p><strong>Scaling di PHP come linguaggio di scripting<br />
</strong></p>
<p>Le origini di PHP sono quelle di un linguaggio di scripting, come Perl, Python e Ruby, che rendono grandi benefici in termini di produttività dei programmatori e la possibilità di agire velocemente sui prodotti. Diversa cosa è rispetto ai più tradizionali linguaggi compilati come il C++ e linguaggi interpretati come Java.<br />
D&#8217;altro canto, i linguaggi di scripting sono conosciuti per essere molto meno performanti quando si tratta di CPU e di occupazione della memoria.<br />
A causa di questo, è stato impegnativo  scalare Facebook per oltre 400 miliardi di pagine php viste ogni mese.</p>
<p>Un modo comune per affrontare queste inefficienze è riscrivere le parti più complesse della vostra applicazione PHP direttamente in C++, come estensioni PHP. Questo trasforma in gran parte il PHP in collante tra il codice HTML  e la logica dell&#8217;applicazione in C++.<br />
Da un punto di vista tecnico questo funziona bene, ma riduce drasticamente il numero di ingegneri che sono in grado di lavorare su l&#8217;intera applicazione.  L&#8217;apprendimento del C++ è solo il primo passo per scrivere estensioni PHP, il secondo è capire le API Zend.<br />
Dato che la nostra squadra di programmazione è relativamente piccola &#8211; ci sono oltre un milione di utenti per ogni ingegnere &#8211; non possiamo permetterci di fare parte della nostra codebase meno accessibile rispetto ad altri.</p>
<p>Scalare Facebook è particolarmente difficile perché quasi ogni visualizzazione della pagina è di un utente connesso con una esperienza personalizzata.<br />
Quando si visualizza la home page abbiamo bisogno di cercare tutti i tuoi amici, interrogare gli aggiornamenti più rilevanti (da un servizio personalizzato che abbiamo costruito chiamato Multifeed), filtrare i risultati in base alle impostazioni di privacy, quindi riempire le storie con i commenti , foto, piace, e tutti i gadgets che la gente ama su Facebook.<br />
Tutto questo in poco meno di un secondo.<br />
HipHop ci permette di scrivere la logica che fa l&#8217;assemblaggio finale della pagina in PHP e lavorare velocemente mentre ci si basa su servizi custom back-end in C++, Erlang, Java, Python o al servizio del feed di notizie, di ricerca, chat, e le altre parti centrali del sito.</p>
<p>Fino dal 2007 abbiamo pensato a diversi modi per risolvere questi problemi e abbiamo anche provato l&#8217;attuazione di un paio di soluzioni.<br />
Il suggerimento comune è quello di riscrivere Facebook in un&#8217;altro linguaggio, ma data la complessità e la velocità di sviluppo del sito questo richiederebbe un enorme tempo. Abbiamo riscritto alcuni aspetti dello Zend Engine &#8211; PHP &#8211; e contribuito a novità nel progetto PHP, ma alla fine non abbiamo visto il tipo di aumento delle prestazioni che sono necessarie. Le prestazioni di HipHop sono necessarie per la nostra velocità di sviluppo.</p>
<p><div style="text-align: center"><script type="text/javascript"><!--
google_ad_client = "pub-9763589373223061";
/* 468x60, devnull */
google_ad_slot = "9717154544";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></p>
<p><strong>Hacking Up HipHop<br />
</strong></p>
<p>Una notte in un Hackmeeting pochi anni fa, ho iniziato a provare a trasformare in C++ parte di codice PHP.<br />
I due linguaggi sono abbastanza simili sintatticamente e il C++ sorpassa drasticamente PHP quando si tratta di utilizzo della CPU e della memoria.<br />
Anche il PHP stesso è scritto in C.<br />
Noi sapevamo che era impossibile riscrivere con successo  un intero codebase di queste dimensioni a mano, quindi ci chiedemmo cosa sarebbe accaduto se avessimo costruito un sistema a livello di codice.</p>
<p>Trovare nuovi modi per migliorare le prestazioni PHP non è un concetto nuovo.<br />
In fase di esecuzione il motore Zend trasforma il sorgente PHP in pocodes che vengono poi eseguiti dalla Zend Virtual Machine.<br />
Progetti open source come APC cache ed eAccelerator usano questo output e sono utilizzati dalla maggior parte dei siti web con PHP.<br />
C&#8217;è anche Zend Server, un prodotto commerciale che rende più veloce PHP tramite l&#8217;ottimizzazione del codice operativo e caching.<br />
Noi invece, abbiamo riflettuto sulla trasformazione del codice PHP direttamente in C++, che può poi poi essere trasformato in codice macchina nativo.<br />
Anche compilare PHP non è un&#8217;idea nuova, i progetti open source come Roadsend e PHC per compilare il PHP a C, Quercus che compila PHP a Java, Phalanger etc.</p>
<p>Inutile dire che dopo quella Hackmeeting è servito molto tempo. Otto mesi dopo, ho avuto il codice sufficiente a dimostrare che è effettivamente possibile correre più veloce con il codice compilato. Al progetto allora si aggiunsero Iain Proctor e Minghui Yang premettendo al team di accelerare il ritmo del progetto.<br />
Abbiamo trascorso i  dieci mesi seguenti per finire tutto il codice e i sei mesi successivi a fare test sui server di produzione.<br />
Siamo orgogliosi di dire che a questo punto, stiamo servendo oltre il 90% del nostro traffico Web utilizzando HipHop, tutto solo sei mesi dopo la distribuzione.</p>
<p><div style="text-align: center"><script type="text/javascript"><!--
google_ad_client = "pub-9763589373223061";
/* 468x60, devnull */
google_ad_slot = "9717154544";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></p>
<p><strong>Come lavora HipHop</strong></p>
<p>La sfida principale del progetto è colmare il divario tra PHP e C++. PHP è un linguaggio di scripting con la dinamica della tipizzazione debole.<br />
 C++ è un linguaggio compilato con tipizzazione statica. Anche se il PHP permette di avere caratteristiche dinamiche, la maggior parte del PHP è relativamente semplice. E &#8216;più probabile che si veda if (&#8230;) {&#8230;} else {..} che non function foo($x) { include $x; }<br />
Questo è dove guadagnamo in prestazioni.<br />
Ove possibile, il nostro codice generato utilizza una tipizzazione statica vincolante per le funzioni e le variabili.<br />
Abbiamo anche utilizzare l&#8217;inferenza di tipo per scegliere il tipo più specifico possibile per le nostre variabili, e quindi salvare la memoria.</p>
<p>Il processo di trasformazione comprende tre fasi principali:</p>
<p>   1. Analisi statica dove raccogliere informazioni su chi dichiara che cosa e le varie dipendenze,<br />
   2. Inferenza di tipo in cui abbiamo scelto il tipo più specifico tra i tipi scalari di C++ , stringhe, array, classi, oggetti etc.<br />
   3. Generazione di codice, che per la maggior parte è una corrispondenza diretta dalle dichiarazioni PHP e le espressioni di C++. </p>
<p><img width="550" src="http://wiki.developers.facebook.com/images/2/23/HipHop_transformation_process.png" alt="steps" /></p>
<p>Abbiamo anche sviluppato HPHPi, che è un interprete sperimentale progettato per lo sviluppo. Quando si utilizza HPHPi non hai bisogno di compilare il codice sorgente PHP prima di eseguirlo. E&#8217; utile per la cattura dei bug in HipHop e offre ai tecnici un modo per utilizzare HipHop senza cambiare il modo in cui scrivono PHP.</p>
<p>Rendere HipHop globale ci permette di mantenere gli aspetti migliori di PHP sfruttando i benefici delle prestazioni di C++.<br />
In totale, abbiamo scritto più di 300.000 linee di codice e più di 5.000 unità di test.<br />
Tutto questo sarà pubblicato questa sera sul GitHub sotto la licenza open source PHP.</p>
<p>Per saperne di più questa sera</p>
<p>Questa sera stiamo ospitando un piccolo gruppo di sviluppatori in immersione profonda in HipHop per PHP e sarà in streaming un Tech Talk dal vivo.<br />
Tornate qui (sul sito di fb)  circa alle 7:30 ora del Pacifico, se desiderate vederlo.</p>
<p>Sono sicuro che ci saranno un sacco di domande, a partire da questa sera, date un&#8217;occhiata al HipHop wiki  o iscrivetevi alla mailing list degli sviluppatori HipHop.<br />
Ci troverete anche  a FOSDEM, SCALE, PHP UK, ConFoo, TEK X, e OSCON nei prossimi mesi a parlare di HipHop per PHP.<br />
Siamo molto entusiasti di evolvere HipHop in un progetto open source fiorente insieme a tutti voi. </p>
<p>Per il video andate qui : <a href="http://developers.facebook.com/news.php?blog=1&#038;story=358">Comunicato su facebook</a></p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdevnull.fuoriradio.com%2F2010%2F02%2F02%2Fil-testo-integrale-in-italiano-della-presentazione-di-hiphop-php%2F&amp;layout=button_count&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://devnull.fuoriradio.com/2010/02/02/il-testo-integrale-in-italiano-della-presentazione-di-hiphop-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>In attesa che la wiki di HipHop-PHP sia aperta&#8230;</title>
		<link>http://devnull.fuoriradio.com/2010/02/02/in-attesa-che-la-wiki-di-hiphop-php-sia-aperta/</link>
		<comments>http://devnull.fuoriradio.com/2010/02/02/in-attesa-che-la-wiki-di-hiphop-php-sia-aperta/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 18:30:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Novità]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[hiphop]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://devnull.fuoriradio.com/?p=181</guid>
		<description><![CDATA[Mentre attendo che i vari siti/mailing list aprano preparo un piccolo riassunto in italiano di quanto detto da Haiping Zhao. HipHop PHP è un metacompilatore che traduce gli script in php in script in C++ attraverso una serie di passi spiegati nella immagine sottostante: Non ho davvero idea come siano riusciti a passare dai tipi [...]]]></description>
			<content:encoded><![CDATA[<p>Mentre attendo che i vari siti/mailing list aprano preparo un piccolo riassunto in italiano di quanto detto da <img src="http://profile.ak.fbcdn.net/v225/469/30/q503938184_6508.jpg" alt="Haiping" /> Haiping Zhao. </p>
<p>HipHop PHP  è un metacompilatore che traduce gli script in php in script in C++ attraverso una serie di passi spiegati nella immagine sottostante:</p>
<p><img width="550" src="http://wiki.developers.facebook.com/images/2/23/HipHop_transformation_process.png" alt="steps" /></p>
<p>Non ho davvero idea come siano riusciti a passare dai tipi &#8220;fluidi&#8221; del php a quelli &#8220;strong&#8221; del C++, l&#8217;algoritmo deve essere alquanto complesso.</p>
<p>Facebook sta già usando &#8220;live&#8221; HipHop PHP quindi dobbiamo pensare che la stesura sia già ad un ottimo livello.<br />
Attualmente mi sono iscritto alla <a href="http://groups.google.com/group/hiphop-php-dev">mailing list su Google Groups</a> (attendo di essere accettato), la wiki su GitHub non mi risulta ancora aperta.</p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdevnull.fuoriradio.com%2F2010%2F02%2F02%2Fin-attesa-che-la-wiki-di-hiphop-php-sia-aperta%2F&amp;layout=button_count&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://devnull.fuoriradio.com/2010/02/02/in-attesa-che-la-wiki-di-hiphop-php-sia-aperta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HipHop PHP da FaceBook</title>
		<link>http://devnull.fuoriradio.com/2010/02/02/hiphop-php-da-facebook/</link>
		<comments>http://devnull.fuoriradio.com/2010/02/02/hiphop-php-da-facebook/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 18:10:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Novità]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[hiphop]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://devnull.fuoriradio.com/?p=178</guid>
		<description><![CDATA[Le strane chiacchiere su Facebook, tanto poco documentate da sembrare una colossale bufala ai miei occhi, si sono rivelate invece esatte: Facebook ha scritto un meta-compilatore per il php e l&#8217;ha chiamato HipHop. Developer blog di Facebook Corro sulla homepage del progetto, presto saprò dirvi di più in merito.]]></description>
			<content:encoded><![CDATA[<p><img style="float:left;margin:8px" src="http://wiki.developers.facebook.com/images/a/ac/HipHop_logo_white.png" alt="hiphop php" />Le strane chiacchiere su Facebook, tanto poco documentate da sembrare una colossale bufala ai miei occhi, si sono rivelate invece esatte:</p>
<p>Facebook ha scritto un meta-compilatore per il php e l&#8217;ha chiamato HipHop.</p>
<p><a href="http://developers.facebook.com/news.php?blog=1&#038;story=358">Developer blog di Facebook</a></p>
<p>Corro sulla homepage del progetto, presto saprò dirvi di più in merito.</p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdevnull.fuoriradio.com%2F2010%2F02%2F02%2Fhiphop-php-da-facebook%2F&amp;layout=button_count&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://devnull.fuoriradio.com/2010/02/02/hiphop-php-da-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Implementare comet in PHP</title>
		<link>http://devnull.fuoriradio.com/2010/02/01/implementare-comet-in-php/</link>
		<comments>http://devnull.fuoriradio.com/2010/02/01/implementare-comet-in-php/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 15:10:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[comet]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://devnull.fuoriradio.com/?p=146</guid>
		<description><![CDATA[Ho trovato un interessante articolo su come implementare Comet in PHP Comet è una tecnica di programmazione che consente al web-server di inviare dati al client senza alcun bisogno che il client li richieda. Questa tecnica consente di avere applicazioni web molto più veloci rispetto al classico Ajax. Nelle applicazioni ajax tradizionali infatti il browser [...]]]></description>
			<content:encoded><![CDATA[<p>Ho trovato un interessante articolo su come <a href="http://www.zeitoun.net/articles/comet_and_php/start">implementare Comet in PHP</a> </p>
<blockquote><p>Comet è una tecnica di programmazione che consente al web-server di inviare dati al client senza alcun bisogno che il client li richieda.<br />
Questa tecnica consente di avere applicazioni web molto più veloci rispetto al classico Ajax. Nelle applicazioni ajax tradizionali infatti il browser non viene avvisato in tempo reale della modifica dei dati sul web-server, ma deve attendere l&#8217;intervento dell&#8217;utente o lo scanning periodico della base dati da uno script temporizzato.
</p></blockquote>
<p>L&#8217;implementazione arriva con due esempi e lascia molti interrogativi ma implementare Comet può risultare utile partendo dalle idee esposte nell&#8217;articolo nel caso si programmi un&#8217;applicazione che necessita di fornire dati in tempo reale all&#8217;utente come per esempio un gioco web o una chat.</p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdevnull.fuoriradio.com%2F2010%2F02%2F01%2Fimplementare-comet-in-php%2F&amp;layout=button_count&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://devnull.fuoriradio.com/2010/02/01/implementare-comet-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FaceBook riscrive il runtime di PHP&#8230;</title>
		<link>http://devnull.fuoriradio.com/2010/01/31/facebook-riscrive-il-runtime-di-php/</link>
		<comments>http://devnull.fuoriradio.com/2010/01/31/facebook-riscrive-il-runtime-di-php/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 15:23:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Novità]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://devnull.fuoriradio.com/?p=130</guid>
		<description><![CDATA[Un certo Alex Handy, nel blog SD TIMES BLOG sostiene che un programmatore di Facebook (sì soltanto una persona) avrebbe riscritto daccapo il php (o un compilatore non si sanno i dettagli della faccenda) e che Martedì questo miracolo della programmazione sarà rilasciato in OpenSource. Al momento non trovo riscontri in rete dell&#8217;iniziativa di Facebook [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float:left; margin: 8px" src="http://snapcasa.com/get.aspx?code=9019&size=l&url=http%3A%2F%2Fphp.net"/ > Un certo <a href="http://www.sdtimes.com/blog/post/2010/01/30/Facebook-rewrites-PHP-runtime.aspx">Alex Handy, nel blog SD TIMES BLOG</a> sostiene che un programmatore di Facebook (sì soltanto una persona) avrebbe riscritto daccapo il php (o un compilatore non si sanno i dettagli della faccenda) e che Martedì questo miracolo della programmazione sarà rilasciato in OpenSource.</p>
<p>Al momento non trovo riscontri in rete dell&#8217;iniziativa di Facebook e la notizia mi puzza di bufala, comunque attendiamo martedì, nel caso mi sbagliassi sarei felice di essere in errore, un php più veloce mi servirebbe senz&#8217;altro. </p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdevnull.fuoriradio.com%2F2010%2F01%2F31%2Ffacebook-riscrive-il-runtime-di-php%2F&amp;layout=button_count&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://devnull.fuoriradio.com/2010/01/31/facebook-riscrive-il-runtime-di-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dialogare con un server REST remoto in xml con php e JQuery.</title>
		<link>http://devnull.fuoriradio.com/2010/01/22/dialogare-con-un-server-rest-remoto-in-xml-con-php-e-jquery/</link>
		<comments>http://devnull.fuoriradio.com/2010/01/22/dialogare-con-un-server-rest-remoto-in-xml-con-php-e-jquery/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 12:42:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jParse]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://devnull.fuoriradio.com/?p=14</guid>
		<description><![CDATA[Uno dei problemi più comuni che si presentano ai programmatori del web 2.0 è dialogare con un server REST in xml o in JSON a seconda dei casi. La prima cosa da fare è creare uno script PHP che si occupi di fare da Proxi tra il server REST e quello che contiene la nostra [...]]]></description>
			<content:encoded><![CDATA[<p>Uno dei problemi più comuni che si presentano ai programmatori del web 2.0 è dialogare con un server REST in xml o in JSON a seconda dei casi.</p>
<p><img style="float:left; margin: 8px" src="http://snapcasa.com/get.aspx?code=9019&size=l&url=www.jquery.com"/ ></p>
<p>La prima cosa da fare è creare uno script PHP che si occupi di fare da Proxi tra il server REST e quello che contiene la nostra applicazione, infatti la richiesta XmlHttpRequest di Javascript è per motivi di sicurezza legata esclusivamente al domino su cui viene effettuata.</p>
<p>Scriviamo quindi per prima cosa la parte PHP che ci è necessaria, utilizzando CURL è semplicissimo:</p>
<p><span id="more-14"></span></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">// Per sicurezza è meglio che l'hostname del server rest non sia un parametro</span>
<span style="color: #666666; font-style: italic;">// ma sia scritto staticamente.</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'HOSTNAME'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'http://www.wheretherestserveris.com/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Prende il path del file rest</span>
<span style="color: #000088;">$query</span> <span style="color: #339933;">=</span> <span style="color: #990000;">urlencode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'query'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> HOSTNAME<span style="color: #339933;">.</span><span style="color: #000088;">$query</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Apre Curl</span>
<span style="color: #000088;">$mycurl</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_init</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Setto curl per restituire solo il contenuto senza header</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$mycurl</span><span style="color: #339933;">,</span> CURLOPT_HEADER<span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$mycurl</span><span style="color: #339933;">,</span> CURLOPT_RETURNTRANSFER<span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$myxml</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_exec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$mycurl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Imposto gli header XML</span>
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Type: text/xml&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$myxml</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_close</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$mycurl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Salviamo il nostro file proxi sul nostro dominio con il nome desiderato (Es. myrestserver.php) , e poi utilizziamo <a href="http://jquery.com/">jQuery</a> e il plugin <a href="http://jparse.kylerush.net/">jParse</a> per interpretare comodamente l&#8217;xml, ecco uno snippet di esempio del codice javascript necessario:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#divchevoglio'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">jParse</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
ajaxOpts<span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>url<span style="color: #339933;">:</span> <span style="color: #3366CC;">'myrestserver.php?query=iwantthis.xml'</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
elementTag<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'field1'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'field2'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'field3'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
output<span style="color: #339933;">:</span> <span style="color: #3366CC;">' &lt;div&gt;&lt;ul&gt;&lt;li&gt;jpet0&lt;/li&gt;&lt;li&gt;jpet1&lt;/li&gt;&lt;li&gt;jpet2&lt;/li&gt;&lt;/div&gt;'</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Per approfondimenti su opzioni, callback etc. guardate il sito ufficiale di <a href="http://jparse.kylerush.net/">jParse</a></p>
<p>Spero di essere stato utile.</p>
<p><div style="text-align: center"><script type="text/javascript"><!--
google_ad_client = "pub-9763589373223061";
/* 468x60, devnull */
google_ad_slot = "9717154544";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></p>
<p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdevnull.fuoriradio.com%2F2010%2F01%2F22%2Fdialogare-con-un-server-rest-remoto-in-xml-con-php-e-jquery%2F&amp;layout=button_count&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://devnull.fuoriradio.com/2010/01/22/dialogare-con-un-server-rest-remoto-in-xml-con-php-e-jquery/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

