<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>PHPBlog.it</title>
	
	<link>http://phpblog.it</link>
	<description>Solo un altro blog targato WordPress</description>
	<lastBuildDate>Thu, 10 May 2012 10:07:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/phpblog/posts" /><feedburner:info uri="phpblog/posts" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>PHP Best Practices</title>
		<link>http://feedproxy.google.com/~r/phpblog/posts/~3/jx3AxBElLqg/</link>
		<comments>http://phpblog.it/2012/05/10/php-best-practices/#comments</comments>
		<pubDate>Thu, 10 May 2012 10:06:02 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[eventi]]></category>
		<category><![CDATA[notizie]]></category>

		<guid isPermaLink="false">http://phpblog.it/?p=557</guid>
		<description><![CDATA[È finalmente in vendita "PHP Best Practices", il primo libro nel suo genere in lingua italiana, affronta dal punto di vista di alcuni professionisti di spicco nel mondo PHP italiano le migliori pratiche di sviluppo introdotte dalle nuove versioni del linguaggio. Sono uno degli autori avendo scritto il capitolo dedicato all'attività di performance profiling delle applicazioni PHP.]]></description>
			<content:encoded><![CDATA[<p>È finalmente in vendita &#8220;<a title="PHP Best Practices" href="http://www.phpbestpractices.it/"><strong>PHP Best Practices</strong></a>&#8220;, il primo libro nel suo genere in lingua italiana, affronta dal punto di vista di alcuni professionisti di spicco nel mondo PHP italiano le migliori pratiche di sviluppo introdotte dalle nuove versioni del linguaggio. Sono uno degli autori avendo scritto il capitolo dedicato all&#8217;attività di performance profiling delle applicazioni PHP.</p>
<div>
<h2>Cosa contiene questo libro</h2>
<p>Il libro è suddiviso in tre parti. Nella prima si parla della community PHP, a livello mondiale e a italiano, e delle novità più importanti di <code>PHP 5.4</code>.</p>
<p>La seconda parte del libro è incentrata sull’introduzione e la descrizione di librerie specifiche messe a disposizione dal linguaggio. In particolare, si parla di <code>Standard PHP Library</code>, della gestione delle date e del tempo, di <code>cloud computing</code>, dei <code>sistemi di caching</code> e dei concetti alla base delle <code>tecnologie REST</code> e dei <code>web services</code>.</p>
<p>La terza e ultima parte è dedicata alle buone pratiche, sia metodologiche sia tecniche. In primo luogo, vengono trattati i pattern e gli aspetti legati alla <code>sicurezza</code> e alla <code>crittografia dei dati</code>. Viene quindi dato ampio spazio alle problematiche di pubblicazione del codice, con due capitoli dedicati al <code>deploy</code> e alla <code>Continuous Integration</code>.</p>
<p>Vengono infine illustrate le migliori pratiche per fare <code>Test Driven Development</code>, per calcolare le metriche del codice e per la profilazione delle applicazioni, al fine di renderle più performanti.</p>
<h2>Per chi è questo libro</h2>
<p>Il libro è dedicato a tutti gli <strong>sviluppatori PHP</strong>, sia quelli più esperti sia quelli alle prime armi. <strong>PHP Best Practices</strong> è stato studiato come un ricettario, da cui ognuno può tirare fuori la migliore ricetta e rielaborarla secondo le proprie necessità. Non solo teoria, ma anche <strong>molti esempi concreti</strong> e casi di studio che permettono di mettere subito in pratica ciò che si è appreso.</p>
<h2>Anteprima</h2>
<p>Il libro verrà presentato in anteprima al <a title="phpDay 2012" href="http://2012.phpday.it/"><strong>phpDay</strong> a Verona</a> nei giorni 18 e 19 maggio 2012.</p>
</div>
<img src="http://feeds.feedburner.com/~r/phpblog/posts/~4/jx3AxBElLqg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2012/05/10/php-best-practices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://phpblog.it/2012/05/10/php-best-practices/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=php-best-practices</feedburner:origLink></item>
		<item>
		<title>Speaker al phpDay 2012!</title>
		<link>http://feedproxy.google.com/~r/phpblog/posts/~3/lr7UNym6XeY/</link>
		<comments>http://phpblog.it/2012/03/22/speaker-al-phpday-2012/#comments</comments>
		<pubDate>Thu, 22 Mar 2012 14:08:35 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[eventi]]></category>
		<category><![CDATA[phpday]]></category>
		<category><![CDATA[talk]]></category>

		<guid isPermaLink="false">http://phpblog.it/?p=543</guid>
		<description><![CDATA[Per il secondo anno di fila sono stato accettato come speaker al phpDay che si terrà a Verona il 18 e 19 maggio 2012. Il talk proposto si intitola "Io cache, tu database" e vuole concentrarsi sulla presentazione di casi reali in cui l'utilizzo della memoria come cache, troppo spesso trascurata, dovrebbe essere la prima soluzione ad essere considerata.]]></description>
			<content:encoded><![CDATA[<p>Per il secondo anno di fila sono stato accettato come speaker al <a title="phpDay 2012 Verona" href="http://2012.phpday.it"><strong>phpDay</strong></a> che si terrà a <strong>Verona il 18 e 19 maggio 2012</strong>. Il talk proposto si intitola &#8220;<strong>Io cache, tu database</strong>&#8221; e vuole concentrarsi sulla presentazione di casi reali in cui l&#8217;utilizzo della memoria come cache, troppo spesso trascurata, dovrebbe essere la prima soluzione ad essere considerata.</p>
<p>Casi reali quindi, supportati da numeri concreti, per toccare con mano ciò che viene tirato in ballo durante il talk.</p>
<p>Ricordo che fino al 1 aprile si possono acquistare i biglietti in <a title="early bird phpDay 2012" href="http://2012.phpday.it/tickets/">early bird</a> e dati i <a title="speaker phpDay 2012" href="http://2012.phpday.it/schedule/">nomi già annunciati</a> direi che è tempo di muoversi!</p>
<img src="http://feeds.feedburner.com/~r/phpblog/posts/~4/lr7UNym6XeY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2012/03/22/speaker-al-phpday-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://phpblog.it/2012/03/22/speaker-al-phpday-2012/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=speaker-al-phpday-2012</feedburner:origLink></item>
		<item>
		<title>Il miglior framework</title>
		<link>http://feedproxy.google.com/~r/phpblog/posts/~3/tw7SnjZWMQ4/</link>
		<comments>http://phpblog.it/2012/02/16/il-miglior-framework/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 15:52:51 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[framework]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[code igniter]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://phpblog.it/?p=527</guid>
		<description><![CDATA[Ultimamente mi imbatto spesso nelle sempre divertenti domande "Qual è il miglior framework PHP?" o "Meglio Zend o Symfony?" o "Non ho mai usato in framework, da quale dovrei iniziare?" e via andare. Credo di essermici trovato dentro almeno quattro volte negli ultimi sette giorni. Ho deciso quindi di scrivere un post un minimo articolato da linkare nelle future discussioni senza perdere tempo in inutili flame che partono sistematicamente già dopo la seconda o terza risposta di "sviluppatori illuminati".]]></description>
			<content:encoded><![CDATA[<p>Ultimamente mi imbatto spesso nelle sempre divertenti domande &#8220;<em>Qual è il miglior framework PHP?</em>&#8221; o &#8220;<em>Meglio Zend o Symfony?</em>&#8221; o &#8220;<em>Non ho mai usato in framework, da quale dovrei iniziare?</em>&#8221; e via andare. Credo di essermici trovato dentro almeno quattro volte negli ultimi sette giorni. Ho deciso quindi di scrivere un post un minimo articolato da linkare nelle future discussioni senza perdere tempo in inutili flame che partono sistematicamente già dopo la seconda o terza risposta di &#8220;sviluppatori illuminati&#8221;.</p>
<p>Le risposte, molte volte, lasciano a bocca aperta. No, non perchè il contenuto sia di interesse sopraffino tale da cambiarvi la vita. Più che altro perchè mentre la leggi pensi &#8220;speriamo di non dover mai lavorare con sto qui&#8221;.</p>
<p><strong>Non ho mai usato un framework, da quale dovrei iniziare?<br />
</strong>Chi pone la domanda è già sicuramente confuso dopo le prime ricerche fatte in rete (perchè ha cercato in rete vero?). Per complicare ulteriormente le cose le risposte che riceve, tramite qualsiasi canale abbia utilizzato (mailing list, social network, sito dedicato), non fanno altro che ripetere quanto probabilmente aveva già ottenuto dalle ricerche effettuate precedentemente: risposte secche che spesso rappresentano l&#8217;unico framework conosciuto da chi risponde. Non il massimo della vita per chi brancola nel buio. Se uno volesse davvero rispondere dovrebbe quanto meno supportare la propria risposta con qualche informazione specifica riguardo almeno un paio di punti di forza che l&#8217;hanno spinto verso un prodotto piuttosto che verso un altro.<strong><br />
</strong></p>
<p><strong>Conosco linguaggio X e linguaggio Y, per un progetto pensavo di utilizzare PHP, mi consigliate il miglior framework?<br />
</strong>Qui la carne al fuoco è davvero troppa. Perchè oltre all&#8217;argomento framework, già sufficiente per far scoppiare il flame, si gioca anche il carico del linguaggio di programmazione in un ambiente in cui sicuramente sono presenti sviluppatori che utilizzano diversi linguaggi (più della religione). Scordatevi risposte costruttive perchè in pochi minuti arriverà la risposta &#8220;PHP? Ma sei matto? Usa Python! Al massimo Java.&#8221;. Ovviamente chi risponde aggiungerà di essere sviluppatore di lunga data e che quindi ha dalla sua l&#8217;esperienza per sparare a zero su tutte le altre cose che oggi non usa (e che magari ha provato solo per un Hello World anni e versioni prima).</p>
<p>Personalmente in situazioni del genere passo in punta di piedi, raso muro, facendo attenzione a non smerdarmi. Anche un consiglio pensato bene verrebbe sommerso dal resto. Tempo perso.</p>
<p><strong>Framework? Ma fattelo da solo!</strong><br />
Sì, nel 2012, c&#8217;è ancora chi preferisce reinventare la ruota e perdere tempo a lavorare sullo strumento piuttosto che sul prodotto. Di situazioni del genere si sono stufati anche i Maya che ovviamente hanno deciso di darci un taglio, proprio quest&#8217;anno. Serve davvero che affronti i problemi legati a una scelta di questo tipo? Qualità del prodotto ottenuto dallo sviluppo interno contro quello portato avanti da un core team (già di per sè molto skillato) più gli occhi e le mani di centinaia se non migliaia di altri sviluppatori che partecipano alla causa nei più disparati modi. Documentazione per eventuali nuovi sviluppatori da introdurre sui progetti. Sicurezza, questa sconosciuta. Standardizzazione dei processi. Devo continuare? Magari in un altro post.</p>
<p><strong>Meglio Zend Framework o meglio Symfony? Ed il migliore in assoluto?<br />
</strong>Ma di cosa stiamo parlando? Migliore rispetto a cosa? Le componenti in gioco sono talmente tante, spesso nemmeno paragonabili, che non è possibile affermare &#8220;questo è meglio&#8221; in modo assoluto. Un prodotto potrà essere più interessante su una certa funzione e pagare dazio su altre. Molte funzioni, non essendo coincidenti, non possono essere paragonate perchè si finirebbe con il dire &#8220;però, effettivamente, questo serve anche per fare altro&#8230;&#8221;. Ovviamente tutto questo discorso si riferisce a prodotti di un certo livello, già affermati e che rispettano dei vincoli <strong>minimi</strong> per essere tenuti in considerazione per progetti in quel campo enterprise di cui ci piace tanto parlare. Quali sono questi vincoli? Alcuni secondo me sono i seguenti:</p>
<p>- documentazione<br />
- community<br />
- risorse disponibili (plugin, bundle, estensioni&#8230;comunque vengano chiamate)<br />
- diffusione (per future collaborazioni, cercare nuovi sviluppatori&#8230;la diffusione di un framework fatto in casa è pari a zero)<br />
- case history di rilievo (sapere che si può arrivare almeno fino a quel punto X aiuta)<br />
- &#8230;</p>
<p>Quindi una volta appurato tutto questo una possibile risposta è &#8220;Io mi trovo bene con questo framework per questo, questo e quest&#8217;altro motivo. Ho invece avuto alcuni problemi per fare questa cosa e non mi piace molto la soluzione messa a disposizione&#8230;&#8221;.</p>
<p><strong>Ok, ma tu cosa mi suggerisci allora?</strong><br />
Il mio consiglio è sempre quello di scremare il più possibile tra i papabili eliminando quelli che non rispettano i vincoli che il singolo sviluppatore ritiene essere più importanti per lui, il suo team, ed il tipo di progetti che affronta. Fatto ciò sporcarsi le mani ed investire qualche ora realizzando un&#8217;applicazione non proprio banale, e questo non implica il fatto che debba essere &#8220;grande&#8221;, per arrivare a prendere una decisione in base ai propri gusti ed alle proprie necessità. La decisione dopo tutto è piuttosto personale e nessuno dovrebbe sentirsi autorizzato a dire &#8220;noooo usa questo!&#8221; piuttosto che consigliare in altro modo. Quando si avrà la prima versione della risposta &#8220;io mi trovo bene con&#8230;&#8221; molto probabilmente si sarà individuato il framework più adatto allo sviluppatore/scenario in questione.</p>
<p>Via al flame.</p>
<img src="http://feeds.feedburner.com/~r/phpblog/posts/~4/tw7SnjZWMQ4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2012/02/16/il-miglior-framework/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://phpblog.it/2012/02/16/il-miglior-framework/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=il-miglior-framework</feedburner:origLink></item>
		<item>
		<title>phpDay &amp; jsDay 2012</title>
		<link>http://feedproxy.google.com/~r/phpblog/posts/~3/O50z-2vXYzc/</link>
		<comments>http://phpblog.it/2012/02/13/phpday-jsday-2012/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 09:21:33 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[eventi]]></category>
		<category><![CDATA[call for paper]]></category>
		<category><![CDATA[jsday]]></category>
		<category><![CDATA[phpday]]></category>

		<guid isPermaLink="false">http://phpblog.it/?p=520</guid>
		<description><![CDATA[Il GrUSP, Gruppo Utenti e Sviluppatori PHP italiani rinnova l’appuntamento annuale con il phpDay e dopo il successo dell’edizione passata riconferma il jsDay. I call for paper sono aperti fino al 28 febbraio, avete quindi ancora due settimane per inviare le vostre proposte se volete partecipare come speaker!]]></description>
			<content:encoded><![CDATA[<p>Il <a title="Gruppo Utenti e Sviluppatori PHP italiani" href="http://www.grusp.it">GrUSP</a>, Gruppo Utenti e Sviluppatori PHP italiani rinnova l’appuntamento annuale con il <a title="phpDay" href="http://2012.phpday.it">phpDay</a> e dopo il successo dell’edizione passata riconferma il <a title="jsDay" href="http://2012.jsday.it">jsDay</a>. I call for paper sono aperti fino al 28 febbraio, avete quindi ancora due settimane per inviare le vostre proposte se volete partecipare come speaker!<br />
<span id="more-520"></span></p>
<p>Alcune dati dell’edizione dell’anno scorso:</p>
<blockquote>
<ul>
<li>una media di 250 partecipanti per ogni singola giornata dell’evento</li>
<li>60 relatori provenienti da tutta Europa e dagli Stati Uniti</li>
<li>durante le 4 giornate sono stati consumati 1200 Spritz</li>
<li>più di 80 persone hanno usufruito della SPA dell’albergo ospitante gli eventi</li>
<li>sono stati registrati 120 GB di video, disponibili su <a title="GrUSP on Vimeo" href="http://vimeo.com/grusp">Vimeo</a></li>
<li>5 membri staff si sono ammalati il giorno successivo al termine della conferenza</li>
</ul>
</blockquote>
<p>Il Call for Paper (<a href="http://2012.jsday.it/call-for-paper/">http://2012.jsday.it/call-for-paper/</a> &#8211; <a href="http://2012.phpday.it/call-for-papers/">http://2012.phpday.it/call-for-papers/</a>) per entrambi gli eventi termina il 28 febbraio, i biglietti (<a href="http://2012.jsday.it/tickets/">http://2012.jsday.it/tickets/</a> &#8211; <a href="http://2012.phpday.it/tickets/">http://2012.phpday.it/tickets/</a>) sono già in vendita ed al momento potete sfruttare ancora l&#8217;offerta early bird fino al primo aprile.</p>
<p>Dunque che aspetti? Invia le tue proposte, io l&#8217;ho già fatto.</p>
<img src="http://feeds.feedburner.com/~r/phpblog/posts/~4/O50z-2vXYzc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2012/02/13/phpday-jsday-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://phpblog.it/2012/02/13/phpday-jsday-2012/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=phpday-jsday-2012</feedburner:origLink></item>
		<item>
		<title>PHP Goes Mobile</title>
		<link>http://feedproxy.google.com/~r/phpblog/posts/~3/WIQ2tTalHFs/</link>
		<comments>http://phpblog.it/2012/01/30/php-goes-mobile/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 10:34:15 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[eventi]]></category>
		<category><![CDATA[milano]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://phpblog.it/?p=514</guid>
		<description><![CDATA[Segnalo questo evento "PHP Goes Mobile - Mobile Architectures on Open Platforms" che si terrà a Milano venerdì 3 febbraio. L'evento è gratuito.]]></description>
			<content:encoded><![CDATA[<p>Segnalo questo evento &#8220;<strong><a title="PHP Goes Mobile" href="http://mobilephp.grusp.org/">PHP Goes Mobile &#8211; Mobile Architectures on Open Platforms</a></strong>&#8221; che si terrà a Milano <strong>venerdì <del>3 febbraio</del> 13 aprile</strong>. L&#8217;evento è gratuito e prevede in mattinata la presentazione di case study di soluzioni implementate, descritte sia dal lato di business che tecnico, cercando di inquadrare le soluzioni mobile anche dal punto di vista progettuale (quanto costano, quante persone servono) e raccontando come si governano questi progetti. Durante il pomeriggio invece ci sarà un BarCamp, una non-conferenza collaborativa, dove chiunque può “salire in cattedra”, proporre un argomento e parlarne agli altri, naturalmente deve essere interessante e relativo al PHP ed al mondo mobile. Una buona occasione quindi per condividere esperienza accumulata o idee da sviluppare oltre che farsi conoscere.</p>
<p>Ci vediamo lì!</p>
<img src="http://feeds.feedburner.com/~r/phpblog/posts/~4/WIQ2tTalHFs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2012/01/30/php-goes-mobile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://phpblog.it/2012/01/30/php-goes-mobile/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=php-goes-mobile</feedburner:origLink></item>
		<item>
		<title>La codifica che non ti aspetti</title>
		<link>http://feedproxy.google.com/~r/phpblog/posts/~3/8va720F93aA/</link>
		<comments>http://phpblog.it/2011/11/15/la-codifica-che-non-ti-aspetti/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 17:24:58 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[database]]></category>
		<category><![CDATA[lesson learned]]></category>

		<guid isPermaLink="false">http://phpblog.it/?p=507</guid>
		<description><![CDATA[In passato, a dir la verità nemmeno troppo remoto, succedeva che i database delle applicazioni venivano creati con encoding SQL_ASCII e popolati con contenuti in formato ISO-8859-1. Tutto bene finchè non capita di dover migrare quei contenuti su un nuovo database...]]></description>
			<content:encoded><![CDATA[<p>In passato, a dir la verità nemmeno troppo remoto, succedeva che i database delle applicazioni venivano creati con encoding SQL_ASCII e popolati con contenuti in formato ISO-8859-1. Tutto bene finchè non capita di dover migrare quei contenuti su un nuovo database, magari cambiando anche RDBMS passando da PostgreSQL a MySQL. Ovviamente il nuovo database ha encoding UTF-8. Succede che alcune cose vengono magicamente perse per strada: sì parliamo di accenti e cose varie.</p>
<p>La soluzione più semplice che ho trovato è la seguente:</p>
<p>1. Eseguire il dump del database codificato con SQL_ASCII</p>
<pre style="padding-left: 30px;">pg_dump database &gt; database.sql</pre>
<p>2. Conversione a UTF-8</p>
<pre style="padding-left: 30px;">iconv -f ISO8859-1 -t UTF-8 database.sql &gt; database.utf8.sql</pre>
<p>3. Importazione dei dati sul nuovo database (creato con encoding UTF-8)</p>
<pre style="padding-left: 30px;">psql database_utf8 &lt; database.utf8.sql</pre>
<p>Da qui poi è tutta discesa dato che utilizzando gli strumenti più conosciuti esportare i dati verso MySQL non ha riservato sorprese.</p>
<img src="http://feeds.feedburner.com/~r/phpblog/posts/~4/8va720F93aA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2011/11/15/la-codifica-che-non-ti-aspetti/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://phpblog.it/2011/11/15/la-codifica-che-non-ti-aspetti/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=la-codifica-che-non-ti-aspetti</feedburner:origLink></item>
		<item>
		<title>Italian Agile Day 2011</title>
		<link>http://feedproxy.google.com/~r/phpblog/posts/~3/So1qLJ01rH8/</link>
		<comments>http://phpblog.it/2011/10/21/italian-agile-day-2011/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 15:55:26 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[eventi]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[agile day]]></category>

		<guid isPermaLink="false">http://phpblog.it/?p=500</guid>
		<description><![CDATA[Sabato 19 Novembre 2011 si terrà a Roma l’ottavo Italian Agile Day. E' una conferenza gratuita dedicata al Lean Development ed alle metodologie Agili per lo sviluppo e la gestione dei progetti software.]]></description>
			<content:encoded><![CDATA[<p><strong>Sabato 19 Novembre 2011</strong> si terrà a <strong>Roma</strong> l’ottavo <a title="Italian Agile Day" href="http://www.agileday.it" target="_blank"><strong>Italian Agile Day</strong></a>. Si tratta di una conferenza gratuita di un giorno dedicata al Lean Development ed alle metodologie Agili per lo sviluppo e la gestione dei progetti software rivolta agli sviluppatori, project leaders, IT managers, tester, architetti e coach che hanno esperienze da condividere o che iniziano solo ora ad interessarsi a queste tematiche. La giornata ha come obiettivo la conoscenza pratica, le esperienze sul campo e un attivo coinvolgimento di tutti i partecipanti. L’accesso è libero previa registrazione, i posti sono limitati. L’evento, per la quinta volta consecutiva, si auto-finanzierà.</p>
<p>L’evento è organizzato dall’Italian Agile Movement che festeggia 9 anni di attività e si terrà sabato 19 Novembre 2011 a Roma. Maggiori informazioni sulla sede <a href="http://www.agileday.it/front/2011/la-sede/">nella pagina ad essa dedicata</a>.</p>
<p>Dato che i 600 posti a disposizione stanno andando a ruba, vi consiglio di <a title="Registrazione Agile Day" href="http://www.agileday.it/front/registrazione/" target="_blank">registrarvi (e fare una donazione)</a> per assicurarvi di partecipare ad un evento di sicuro interesse!</p>
<img src="http://feeds.feedburner.com/~r/phpblog/posts/~4/So1qLJ01rH8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2011/10/21/italian-agile-day-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://phpblog.it/2011/10/21/italian-agile-day-2011/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=italian-agile-day-2011</feedburner:origLink></item>
		<item>
		<title>phpConference 2011 – Giorno 3</title>
		<link>http://feedproxy.google.com/~r/phpblog/posts/~3/rsyTKpkZgXY/</link>
		<comments>http://phpblog.it/2011/10/12/phpconference-2011-giorno-3/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 17:30:59 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[eventi]]></category>
		<category><![CDATA[phpconference]]></category>

		<guid isPermaLink="false">http://phpblog.it/?p=461</guid>
		<description><![CDATA[Breve resoconto della terza giornata di talk alla phpConference 2011 di Mainz.]]></description>
			<content:encoded><![CDATA[<p>Breve resoconto della terza giornata di talk alla <a href="http://phpconference.com/" target="_blank"><strong>phpConference 2011 di Mainz</strong></a></p>
<p><strong>Doctrine and NoSQL</strong> &#8211; Benjamin Eberlei<br />
Interessante presentazione dell&#8217;ODM di Doctrine2 per sfruttare quanto offerto nell&#8217;area NoSQL da CouchDB e da MongoDB. Il focus era sulla semplicità di mappare gli oggetti sui database non relazionali a differenza di quelli relazionali dovuta al fatto che vengono a mancare molti vincoli che fino ad oggi ci hanno complicato la vita non poco. Alcuni esempi molto chiari hanno supportato il tutto nel migliore dei modi. Ovviamente in alcuni casi questi due prodotti NoSQL non sono ancora raccomandabili: si pensi a contesti in cui le transazioni sono necessarie o casi in cui &#8216;lintegrità referenziale non può essere demandata all&#8217;applicazione.</p>
<p><strong>This Way or the other Way?</strong> &#8211; Stefan Priebsch<br />
Experiment Driven Development, ovvero prendere decisioni basate su dati empirici ricavati da test piuttosto che basandosi su ipotesi che spesso si rivelano errate. E&#8217; questo il succo del discorso del talk di Priebsch che presenta una semplice demo in cui i concetti di Factory e Dependency Injection sono alla base della soluzione adottata per poter sostituire intere classi in base a particolari dati che ci permettono di decidere a quali utenti od in quali situazione presentare un risultato (pensate ad una nuova pagina del profilo) piuttosto che un altro. Un semplice log può collezionare i risultati di una votazione (star rating 1-5 per esempio) da parte degli utenti per valutare con dati alla mano se la modifica introdotta ha riscosso successo oppure no.</p>
<p><strong>One Click Deployment with Jenkins</strong> &#8211; Thorsten Rinne<br />
Presentazione del flusso di lavoro e del processo di deploy di una delle più grandi realtà tedesche nel campo dello sviluppo di applicazioni PHP basato su Jenkins ma non solo.</p>
<p><strong>Doctrine 2: Next Generation ORM</strong> &#8211; Benjamin Eberlei<br />
Introduzione completa all&#8217;ORM di Doctrine2 analizzando quali sono i problemi degli ORM e del loro utilizzo e quali le soluzioni adottate da Doctrine2 (N+1 problem, non-object results).</p>
<p>Ringrazio <a title="HTML.it" href="http://www.html.it/" target="_blank">HTML.it</a> che con il suo contributo ha reso possibile la mia partecipazione all’evento più importante dell’anno in ambito PHP.</p>
<img src="http://feeds.feedburner.com/~r/phpblog/posts/~4/rsyTKpkZgXY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2011/10/12/phpconference-2011-giorno-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://phpblog.it/2011/10/12/phpconference-2011-giorno-3/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=phpconference-2011-giorno-3</feedburner:origLink></item>
		<item>
		<title>phpConference 2011 – Giorno 2</title>
		<link>http://feedproxy.google.com/~r/phpblog/posts/~3/7g31jurFjYk/</link>
		<comments>http://phpblog.it/2011/10/12/phpconference-2011-giorno-2/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 13:16:29 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[eventi]]></category>
		<category><![CDATA[phpconference]]></category>

		<guid isPermaLink="false">http://phpblog.it/?p=459</guid>
		<description><![CDATA[Breve resoconto della seconda giornata di talk alla phpConference 2011 di Mainz.]]></description>
			<content:encoded><![CDATA[<p>Breve resoconto della seconda giornata di talk alla <a href="http://phpconference.com/" target="_blank"><strong>phpConference 2011 di Mainz</strong></a>.</p>
<p><strong>Large-Scale Data Processing with Hadoop and PHP</strong> &#8211; David Zuelke<br />
Processare enormi quantità di dati non è mai stato così facile: Hadoop e Map/Reduce in nostro soccorso! La maggior parte degli sviluppatori difficilmente si troverà di fronte a problemi del genere: avere svariate centinaia di GB di log o simili da cui estrapolare alcuni dati non capita di sicuro tutti i giorni. Ma per quelli che invece il problema l&#8217;hanno incontrato questo talk ha presentato una soluzione percorribile, raccomandata ed adottata da molti grandi player del settore.</p>
<p><strong>Profiling PHP Applications</strong> &#8211; Derick Rethans<br />
Dall&#8217;autore di Xdebug arriva un talk sul profiling delle applicazioni PHP con un monito iniziale verso tutte le microttimizzazioni che si possono trovare in rete quando si cercano informazioni riguardo al profiling: print vs echo, &#8220;&#8221; vs &#8221; e così via. Tutte cose che non apportano benefici significativi alle performance delle nostre applicazioni. Per poter migliorare un&#8217;applicazione però è necessario capirne il funzionamento (potrebbe essere stata sviluppata da altri) ed individuare quelle porzioni di codice che più di altre consumano tempo e risorse. Come? Attraverso alcuni strumenti come Xdebug, XHprof, Inclued, KCacheGrind&#8230;</p>
<p><strong>How the Web Evolves with Hypermedia</strong> &#8211; David Zuelke<br />
Di gran lunga il miglior intervento di tutta la conferenza ed i feedback su join.in lo testimoniano. Keynote sull&#8217;evoluzione del web grazie all&#8217;utilizzo dell&#8217;hypermedia: REST, HATEOAS e Uniform interface al centro dell&#8217;argomentazione. Assolutamente da vedere, attendiamo il video.</p>
<p><strong>Designing HTTP Interfaces and RESTful Web Services</strong> &#8211; David Zuelke<br />
Si fa presto a dire di avere un&#8217;api REST, molti lo fanno senza nemmeno sapere effettivamente quali siano i requisiti indispensabili per poter dire che un&#8217;api è RESTful o meno. Regole e best practice da ricordare e rispettare durante lo sviluppo per partire con il piede giusto.</p>
<p><strong>Symfony2 by Code</strong> &#8211; Lukas Smith<br />
Effettivamente solo codice senza slide. Più che altro un workshop condensato in session attraverso il quale Lukas ha introdotto i concetti principali alla base di Symfony2 seguendo quello che è il flusso dell&#8217;applicazione dall&#8217;arrivo della richiesta al front controller al rendering della pagina. Alcuni accenni a bundle utili che possono risparmiare un sacco di codice per affrontare problemi comuni.</p>
<p><strong>Scalable high-performance Architectures</strong> &#8211; Stefan Priebsch<br />
Presentazione diversa dal solito in cui si parla di scalabilità di architetture ad alte prestazioni nel campo della ristorazione: caso specifico un fast food. Singolare quanto i processi ed i possibili colli di bottiglia possano essere mappati su una tipica infrastruttura IT a cui siamo tanto abituati. Diversi approcci per portare alla luce pro e contro di soluzioni diverse.</p>
<p>Ringrazio <a title="HTML.it" href="http://www.html.it/" target="_blank">HTML.it</a> che con il suo contributo ha reso possibile la mia partecipazione all’evento più importante dell’anno in ambito PHP.</p>
<img src="http://feeds.feedburner.com/~r/phpblog/posts/~4/7g31jurFjYk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2011/10/12/phpconference-2011-giorno-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://phpblog.it/2011/10/12/phpconference-2011-giorno-2/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=phpconference-2011-giorno-2</feedburner:origLink></item>
		<item>
		<title>phpConference 2011 – Giorno 1</title>
		<link>http://feedproxy.google.com/~r/phpblog/posts/~3/t7T7A1cJip0/</link>
		<comments>http://phpblog.it/2011/10/10/phpconference-2011-giorno-1/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 19:46:55 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[eventi]]></category>
		<category><![CDATA[phpconference]]></category>

		<guid isPermaLink="false">http://phpblog.it/?p=448</guid>
		<description><![CDATA[Breve resoconto della prima giornata di talk alla phpConference 2011 di Mainz. Da oggi solo session da 60 minuti.]]></description>
			<content:encoded><![CDATA[<p>Breve resoconto della prima giornata di talk alla <a href="http://phpconference.com" target="_blank"><strong>phpConference 2011 di Mainz</strong></a>.</p>
<p><strong>Kanban Pizza Game &#8211; Ralf Kruse</strong><br />
Talk introduttivo all&#8217;utilizzo di Kanban attraverso un gioco con i presenti per estrarre la teoria direttamente dalla pratica.</p>
<p>A due gruppi di 5 persone è stato chiesto di creare delle fette di pizza (con carta, post-it, pennarelli e forbici) nel minore tempo possibile, con il minor scarto possibile e con strumenti limitati (solo 2 forbici per gruppo, un solo pennarello&#8230;per spingere il gruppo verso la creazione di un processo piuttosto che farli lavorare separatamente).</p>
<p>Dopo una prima manche sono stati tracciati i risultati ed è stato chiesto ai gruppi di rispettare la richiesta di riduzione al minimo dello scarto introducendo dei limiti sui &#8220;pezzi&#8221; che ogni stazione del processo poteva elaborare contemporaneamente. E&#8217; stata data la possibilità di ottimizzare il processo in base alle idee dei partecipanti per aumentare la produttività del gruppo.</p>
<p>Seconda manche con risultati nettamente migliori rispetto alla prima dati dalla migliore organizzazione raggiunta e dalla possibilità di ciascuno di focalizzare il proprio lavoro sul compito assegnato.<br />
Terza manche a cui è stata aggiunta una particolare richiesta preparare la rucola per farcire la pizza dopo la cottura. I risultati sono ancora migliorati nonostante la nuova richiesta. Segno di raffinamento ulteriore del processo.</p>
<p>E&#8217; davvero giunto il momento di testare l&#8217;utilizzo del Kanban.<br />
Date un&#8217;occhiata a questo pdf molto esauriente <a href="http://www.crisp.se/kanban/kanban-example.pdf">Kanban kick-start example</a></p>
<p><strong>10 Years of PHPUnit: What works, what doesn&#8217;t &#8211; Sebastian Bergmann</strong><br />
Panoramica dalla nascita dei primi strumenti di QA per PHP allo stato dell&#8217;arte attuale tracciando l&#8217;evoluzione degli stessi analizzando le cause di alcuni cambiamenti (vedi passaggio da Hudson a Jenkins). Ne è uscito che gli attuali strumenti sono nati da sviluppatori tedeschi (salvo PHP_CodeSniffer).</p>
<p>Infine presentate alcune novità riguardanti PHPUnit 3.6 che vedrà comparire cose come:</p>
<p>- notation per small, medium, large test<br />
- notation per dipendenze (versione di PHP, versione di PHPUnit per esempio)<br />
- notation per dipendenze</p>
<p><strong>Geolocation and Maps with PHP &#8211; Derick Rethans</strong><br />
Web, PHP e mappe: non c&#8217;è solo Google! Rethans presenta alcune alternative per rispondere a diverse necessità che tirano in ballo l&#8217;utilizzo di mappe e di servizi di geolocalizzazione. Ampio spazio dedicato al progetto OpenStreetMap che tra i punti di forza, oltre ad offrire una quantità davvero sbalorditiva di dati, ha quello di essere aggiornato dagli utenti che avranno sempre e comunque l&#8217;accesso ai dati che offrono.</p>
<p><strong>PHP Testing Tools &#8211; Sebastian Bergmann</strong><br />
Altra panoramica su strumenti dedicati al testing diversi da PHPUnit. Tra soluzioni poco comode o solo parzialmente documentate risalta sicuramente Behat per il behavior driven development che offre un nuovo modo di presentare il testing rendendolo accessibile (il suo output) anche ai non tecnici.</p>
<p>Tre suggerimenti utili per quanto riguarda gli strumenti di profiling/benchmarking sono:<br />
- gprof2dot.py che offre un migliore output per grafico rispetto a KCacheGrind (basandosi sul log di Xdebug)<br />
- XHProf WebUI per comparare due sessioni di lavoro con la stessa codebase e verificare cambiamenti di performance rispetto ad attività di fine tuning<br />
- Pylot per benchmarking con richieste parallele (ab è sequenziale)</p>
<p>Ringrazio <a title="HTML.it" href="http://www.html.it/" target="_blank">HTML.it</a> che con il suo contributo ha reso possibile la mia partecipazione all’evento più importante dell’anno in ambito PHP.</p>
<img src="http://feeds.feedburner.com/~r/phpblog/posts/~4/t7T7A1cJip0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2011/10/10/phpconference-2011-giorno-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://phpblog.it/2011/10/10/phpconference-2011-giorno-1/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=phpconference-2011-giorno-1</feedburner:origLink></item>
	</channel>
</rss>

