<?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>PHPBlog.it &#187; php</title>
	<atom:link href="http://phpblog.it/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://phpblog.it</link>
	<description>Solo un altro blog targato WordPress</description>
	<lastBuildDate>Mon, 30 Jan 2012 10:36:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PHP Goes Mobile</title>
		<link>http://phpblog.it/2012/01/30/php-goes-mobile/</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ì 3 febbraio</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>
]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2012/01/30/php-goes-mobile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gestione delle sessioni su sistemi bilanciati</title>
		<link>http://phpblog.it/2011/07/08/gestione-delle-sessioni-su-sistemi-bilanciati/</link>
		<comments>http://phpblog.it/2011/07/08/gestione-delle-sessioni-su-sistemi-bilanciati/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 08:25:14 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[infrastruttura]]></category>
		<category><![CDATA[balancer]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[redis]]></category>
		<category><![CDATA[sessioni]]></category>

		<guid isPermaLink="false">http://phpblog.it/?p=422</guid>
		<description><![CDATA[Una delle prime criticità che si incontrano quando ci si trova nella situazione di sviluppare/portare un&#8217;applicazione su un sistema bilanciato è rappresentato dalla gestione delle sessioni degli utenti. Di seguito parlerò di quelle che sono le soluzioni percorribili per gestire le sessioni su sistemi bilanciati con PHP. Le situazioni che portano a dover affrontare questo [...]]]></description>
			<content:encoded><![CDATA[<p>Una delle prime criticità che si incontrano quando ci si trova nella situazione di sviluppare/portare un&#8217;applicazione su un sistema bilanciato è rappresentato dalla gestione delle sessioni degli utenti. Di seguito parlerò di quelle che sono le soluzioni percorribili per gestire le sessioni su sistemi bilanciati con PHP.</p>
<p><span id="more-422"></span></p>
<p>Le situazioni che portano a dover affrontare questo problema sono essenzialmente due:</p>
<p>1) una certa applicazione inizia a generare più traffico di quello che l&#8217;infrastruttura attuale riesce a sostenere: è quindi necessario scalare orizzontalmente per distribuire le richieste e frazionare il rischio</p>
<p>2) stiamo lavorando ad un&#8217;applicazione che già a priori sappiamo genererà parecchio traffico da richiedere un sistema bilanciato anche per assicurarne la disponibilità</p>
<p>Nel primo caso l&#8217;applicazione andrà adattata, nel secondo sarà più semplice partire già seguendo la strada giusta.</p>
<p>Il problema da risolvere, per applicazioni e/o infrastrutture non progettate per lo scopo, è il seguente. In un sistema bilanciato richieste successive degli utenti vengono distribuite da un bilanciatore sui vari nodi componenti il cluster frontend (server web) dell&#8217;infrastruttura. Dato che <strong>PHP di default salva i dati della sessione sul disco della singola macchina che ha elaborato la richiesta</strong> (singolo server web) è facilmente intuibile che alla richiesta successiva, che presumibilmente verrà indirizzata ad un altro server web, i dati della sessione non saranno più disponibili per l&#8217;applicazione essendo così la causa potenziale di non pochi problemi.</p>
<p>Per ovviare al problema le strade percorribili sono diverse.</p>
<p><strong>NFS</strong>: soluzione sconsigliata, citata solo per completezza e ragioni storiche. Ricorrendo all&#8217;utilizzo in un network file system possiamo fare in modo che tutti i server web utilizzino questo spazio condiviso per leggere e scrivere in un unico punti i dati delle sessioni degli utenti. In questo modo senza alcuna modifica all&#8217;applicazione abbiamo centralizzato i dati permettendo a tutti i web server di vedere le sessioni create dagli altri. Purtroppo però i contro sono rappresentati da performance poco raccomandabili e problemi di data corruption che si possono incontrare specialmente quando le scritture iniziano ad essere elevate.</p>
<p><strong>COOKIE</strong>: ricorrere all&#8217;utilizzo di cookie criptati permette di far viaggiare i dati della sessione assieme alle richieste effettuate dall&#8217;utente. I dati sono salvati lato client, quindi non c&#8217;è bisogno di uno storage centralizzato. E&#8217; una soluzione facile da realizzare e che può incontrare solo problemi legati alla dimensione dei dati da memorizzare. Il prezzo da pagare è quello di un leggero incremento della banda utilizzata per lo scambio di queste informazioni aggiuntive.</p>
<p><strong>DATABASE</strong>: utilizzare un database permette di centralizzare le sessioni e renderle facilmente disponibili ai vari webserver oltre che facilitarne la persistenza. In contesti con traffico non eccessivo può essere una buona soluzione per l&#8217;utilizzo di uno strumento &#8220;semplice&#8221; come un database. All&#8217;aumentare del traffico però il rapporto tra letture e scritture inizia a creare qualche problema dato che non è possibile ottimizzare il servizio per  l&#8217;una o l&#8217;altra operazione, inoltre senza il passaggio ad un sistema master-slave o master-master con N slave (creando ulteriore complessità nell&#8217;architettura generale) il database rappresenta il single point of failure per questo tipo di approccio. Inoltre può trasformarsi in un collo di bottiglia non indifferente.</p>
<p><strong>MEMCACHED</strong>: utilizzare la memoria per leggere e scrivere dati permette di avere prestazioni che filesystem e database relazionali non possono nemmeno sognare. Memcached essendo poi clusterizzabile rappresenta una soluzione molto interessante specie in quei casi dove l&#8217;eventuale perdita dei dati (corruzione memoria) non è un evento tragico. Infatti avendo a che fare con la memoria i problemi possono derivare dalla corruzione della stessa, che porta alla perdita di tutti i dati presenti in quel momento perchè non vi è un sistema di persistenza. Inoltre la memoria è ciclica percui se la quantità di memoria allocata a Memcached non è correttamente proporzionata i dati più &#8220;vecchi&#8221; vengono eliminati per lasciare spazio a quelli &#8220;nuovi&#8221;.</p>
<p><strong>REDIS</strong> (CLUSTER): come visto per Memcached sappiamo che la memoria rappresenta uno strumento ottimale in termini di performance. Redis permette inoltre di evitare i problemi di persistenza perchè ad intervalli regolari salva i dati anche su disco. Dalla versione 2.4 (al momento in sviluppo) sarà disponibile anche la versione cluster che quindi permetterà di allestire infrastrutture al pari di quelle realizzate con Memcached.</p>
<p><strong>STICKY SU BALANCER HW</strong> (LAYER 7): una soluzione che non richiede modifiche all&#8217;applicazione ed all&#8217;infrastuttura è a disposizione nel caso in cui si utilizzi un balancer hardware che gestisce le sessioni in modo persistente. In questo modo l&#8217;utente verrebbe indirizzato durante la sua sessione di navigazione sempre verso lo stesso webserver. Il vantaggio è che l&#8217;applicazione non andrebbe modificata, le gestione delle sessioni è tutta a monte demandata al bilanciatore di carico. Il rovescio della medaglia? Il costo: balancer di questo tipo comportano spese ben superiori rispetto a balancer non persistenti che si possono realizzare anche con un semplice server predisposto per smistare il traffico.</p>
<p>Domande? Curiosità? I commenti sono aperti.</p>
]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2011/07/08/gestione-delle-sessioni-su-sistemi-bilanciati/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>phpDay 2010 &#8211; seconda giornata</title>
		<link>http://phpblog.it/2010/05/15/phpday-2010-secondo-giorno/</link>
		<comments>http://phpblog.it/2010/05/15/phpday-2010-secondo-giorno/#comments</comments>
		<pubDate>Sat, 15 May 2010 11:56:39 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[eventi]]></category>
		<category><![CDATA[corropoli]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpday2010]]></category>

		<guid isPermaLink="false">http://phpblog.it/?p=326</guid>
		<description><![CDATA[Passata la prima giornata dedicata ai workshop eccoci giunti al secondo giorno del phpDay 2010 a Corropoli (Te) pronti a seguire un gran numero di talk interessanti.]]></description>
			<content:encoded><![CDATA[<p>Passata la prima giornata dedicata ai workshop eccoci giunti al  secondo giorno del phpDay 2010 a Corropoli (Te) pronti a seguire un gran  numero di talk interessanti. A volte è stato difficile fare delle  scelte, ma non potendo seguire tutto qualcosa va sacrificato (pensavo di  proporre per il prossimo anno un serialize dei talk per evitare  collisioni, 16 ore di fila, che dite?).</p>
<p><span id="more-326"></span></p>
<p><img title="Continua..." src="http://phpblog.it/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<h2>YQL &amp; PHP</h2>
<p>Lasciatemi esordire così: che figata pazzesca! Se non avete mai  sentito parlare di <a title="YQL" href="http://developer.yahoo.com/yql/" target="_blank">YQL</a> vi  consiglio caldamente di dargli un&#8217;occhiata, anche due. Giocate un po&#8217;  con la console e restate impressionati dalle <strong>745</strong> &#8220;tables&#8221; che  vengono messe a disposizione gratuitamente. YQL permette di consumare o,  volendo, esporre dati utilizzando una sintassi simile all&#8217;SQL senza  doversi preoccupare di capire come le api di un dato servizio  funzionino. Un unico modo per parlare con tutti i maggiori servizi web e  creare così altre applicazioni/mashup o semplicemente utilizzare dei  dati ignorando completamente ciò che realmente c&#8217;è sotto. Va provato per  capirne la portata, ho visto gente perdere quasi il senno dopo il talk  <img src='http://phpblog.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Dependency Injection in PHP</h2>
<p>Che il concetto di DI sia di una facilità e chiarezza disarmante era  ormai chiaro. Molti sicuramente applicano giornalmente la DI anche senza  saperlo, farlo con consapevolezza forse sarebbe ancora meglio. Non così  semplice il concetto e l&#8217;applicazione dei DIC (dependency injection  containers), nonostante Fabien habbia mostrato di essere capace di farlo  con 40 righe di codice. Ma se la DI è una buona pratica da seguire i  DIC vanno presi un po&#8217; più con le molle e non si deve per forza cercare  di applicarli ovunque visto che ci sono situazioni in cui è giusto  vengano utilizzati mentre in altre occasioni sarebbe sbagliato.</p>
<h2>Testare l&#8217;ignoto</h2>
<p>Michele Orselli e Filippo De Santis, del team di Ideato, parlano di  strumenti dedicati al testing funzionale ed unitaro per realizzare un  ambiente di  test per le proprie necessità. Nello specifico l&#8217;esperienza  da cui hanno ricavato le informazioni è scaturita dalla necessità di  testare eZPublish ricorrendo all&#8217;utilizzo di strumenti come Selenium IDE  / RC e PHPUnit.</p>
<p>Come sempre conoscere esperienze reali di utilizzo di tecniche di  testing, in ambienti eterogenei, è molto interessante. Confrontarsi  porta a migliorarsi. Un problema sentito particolarmente, e che più di  qualcuno ha evidenziato, è stato forse quello relativo al livello di  complessità degli esempi affrontati: introduzione o percorso avanzato?  Qualcuno già skillato sull&#8217;argomento spera sempre di spingersi oltre ai  limiti attuali mentre chi è agli inizi o addirittura non ha mai  affrontato l&#8217;argomento si augura che qualcuno lo prenda per mano e lo  conduca in questo fantastico mondo.</p>
<p>Che sia il caso di trovare nuove forme di analisi per stabilire il  livello di un talk coinvolgendo a priori i possibili spettatori? Credo  ne scriverò in futuro.</p>
<h2>Caching in PHP: get better perfomance for your web applications</h2>
<p>Enrico Zimuel di Zend presenta un interessante carellata sugli attuali strumenti di caching presenti nel panorama PHP attraverso uno studio sulle performance che ha condotto personalmente negli ultimi mesi e che dovrebbe vedere la luce tra non molto. Visto l&#8217;alto numero di interventi da parte dei presenti non si è riusciti ad analizzare tutti i dati ricavati dallo studio, tuttavia ci si è accorti che APC, XCache e Zend Cache primeggiano su tutti quando si ha a che fare con un&#8217;infrastruttura a singola macchina; da valutare separatamente il caso di cluster in cui memcached dovrebbe ripagare ciò che perde in prestazioni grazie al fatto di poter gestire in modo centralizzato i dati per i vari nodi del cluster.</p>
<p>A brevissimo mi troverò ad utilizzare uno di questi prodotti per risolvere un po&#8217; il problema inverso: contatori ad alta concorrenza. Quindi qualcosa che avrebbe bisogno di fare qualche migliaio di scritture al minuto sul db che chiaramente non è uno scenario auspicabile. Scrivere in memoria e ad intervalli recuperare il dato per aggiornare il database è la soluzione ideale. Vi farò sapere.</p>
]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2010/05/15/phpday-2010-secondo-giorno/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPC Karlsruhe: seconda giornata</title>
		<link>http://phpblog.it/2009/11/25/ipc-karlsruhe-seconda-giornata/</link>
		<comments>http://phpblog.it/2009/11/25/ipc-karlsruhe-seconda-giornata/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 21:09:36 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[eventi]]></category>
		<category><![CDATA[international php conference]]></category>
		<category><![CDATA[ipc]]></category>
		<category><![CDATA[karlsruhe]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://phpblog.it/?p=291</guid>
		<description><![CDATA[Eccoci qua a fare un breve riassunto della seconda giornata dell’International PHP Conference di Karlsruhe. Dopo i workshop e la giornata di lunedì si continua con i talk classici. Sempre buon numero di partecipanti e incontri interessanti da fare.]]></description>
			<content:encoded><![CDATA[<p>Eccoci qua a fare un breve riassunto della seconda giornata dell’International PHP Conference di Karlsruhe. Dopo i <a title="IPC Karlsruhe 2009 workshop" href="http://phpblog.it/2009/11/16/ipc-karlsruhe-workshop-day/" target="_blank">workshop</a> e la <a title="IPC Karlsruhe 2009 lunedì" href="http://phpblog.it/2009/11/17/ipc-karlsruhe-prima-giornata/">giornata di lunedì</a> si continua con i talk classici. Sempre buon numero di partecipanti e incontri interessanti da fare.</p>
<p><strong>Building configurable applications for the web</strong> &#8211; Tom Melendez</p>
<p>Primo talk della giornata dedicato ad un argomento che spesso viene trascurato: configurabilità delle applicazioni. Configurabilità per renderle indipendenti dall&#8217;infrastruttura su cui vengono eseguite e per potersi adattare in modo semplice a situazioni poco piacevoli. Se per il primo argomento può venire subito in mente qualche esempio di dati inseriti in modo poco ortodosso (hardcoded), il secondo può sfuggire. Si tratta di poter trarre vantaggio da una serie di accorgimenti per una degradazione pianificata di un servizio: l&#8217;esempio portato è stato quello di Yahoo! News nelle cui pagine sono state identificate diverse aree (articolo, letture suggerite, banner&#8230;) assegnando loro dei valori in base all&#8217;importanza che assumono per il business dell&#8217;applicazione. All&#8217;occorrenza (picchi di traffico, eventi non pianificati) si dovrebbe poter escludere tale porzione dalla pagina in modo da ridurre l&#8217;utilizzo delle risorse necessarie alla pubblicazione della pagina stessa. Quante volte avete &#8220;ridotto&#8221; la home page di un sito a causa dell&#8217;alto traffico? A me è successo, poterlo fare in modo semplice e veloce può rendere le cose molto più semplici&#8230;</p>
<p><strong>Indexing the MySQL Index: Guide to Performance Enhancement</strong> &#8211; Sonali Minocha, Vineet Agrawal</p>
<p>Quando si lavora su piccoli progetti o in piccole aziende non è sempre possibile avere a disposizione un DBA che si occupa di tutte le problematiche relative ai database utilizzati dalle applicazioni su cui si lavora. Molte volte quindi è lo sviluppatore ad avere molto a che fare con il database, anche quando si accusano problemi di performance della base di dati su cui si fa affidamento. Il talk sull&#8217;utilizzo corretto degli index è stato molto interessante per me visto che mi ha introdotto ad alcune problematiche che personalmente ignoravo andando più in profondità e presentando strumenti di controllo che se non altro possono darci la possibilità di analizzare e capire quali sono i colli di bottiglia e come risolvere i problemi che ne derivano.</p>
<p><strong>The future of web technologies</strong> &#8211; Patrick Lauke</p>
<p>Keynote in sala plenaria a cura di Patrick Lauke (Opera) che parla di HTML5 presentando un po&#8217; di novità che già da tempo si vedono nei vari articoli presenti in rete. HTML5 è ciò che aspettiamo tutti noi sviluppatori, per me bastano già le novità relative ai video e per voi? Ciò che più ci si chiede è quanto tempo ci vorrà prima che tutti i player là fuori diano supporto ad HTML5?</p>
<p>Panel su <strong>Cloud computing</strong></p>
<p>A causa di o grazie alla cancellazione di un talk per cause di forza maggiore è stato organizzato un panel sul cloud computing, argomento ben presente a questa edizione dell&#8217;IPC. E&#8217; stato possibile sentire qualche esperienza diretta dei presenti relativamente all&#8217;utilizzo ed alle aspettative riposte nel cloud computing, tuttavia come obiettato da qualcuno pareva più una marketta che qualcosa di tecnico visto che i presenti erano per la maggior parte sviluppatori interessati a tecnicismi piuttosto che a nomi&#8230;</p>
<p><strong>Validating XML &#8211; Avoiding the pain</strong> &#8211; Arne Blankerts, Tobias Schlitt</p>
<p>Qualche prova live durante il talk per l&#8217;utilizzo di DTD, XML Schema e RelaxNG per la validazione degli XML non solo parlando di risultati. Qualcosa che non incontro spesso e che può tornare utile nell&#8217;ottica di distribuzione dati tramite XML. Qualche problema con l&#8217;IDE che non ha permesso di vedere tutti gli esempi, peccato.</p>
<p><strong>Symfony Components: What&#8217;s in for you?</strong> &#8211; Fabien Potencier</p>
<p>Interessante panoramica sui components di symfony da parte di Fabien Potencier, ogni esempio supportato da del codice esemplificativo. Stranamente poche persone a seguire il talk ma nello stesso tempo negli altri canali erano attivi relatori molto interessanti specialmente in lingua tedesca&#8230;</p>
<p>Si chiude la giornata al centro congressi con un buffet / aperitivo con &#8220;free beer&#8221; e possibilità di networking. Vista la scarsa partecipazione abbiamo poi deciso di uscire a cena con Fabien Potencier come ospite d&#8217;onore: due italiani (io e Francesco Fullone), un norvegese (Morten Amundsen) e un francese (Fabien Potencier)&#8230;no non è una barzelletta!</p>
]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2009/11/25/ipc-karlsruhe-seconda-giornata/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPC Karlsruhe: prima giornata</title>
		<link>http://phpblog.it/2009/11/17/ipc-karlsruhe-prima-giornata/</link>
		<comments>http://phpblog.it/2009/11/17/ipc-karlsruhe-prima-giornata/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 00:10:19 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[eventi]]></category>
		<category><![CDATA[international php conference]]></category>
		<category><![CDATA[ipc]]></category>
		<category><![CDATA[karlsruhe]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://phpblog.it/?p=276</guid>
		<description><![CDATA[Eccoci qua a fare un breve riassunto della prima giornata dell'International PHP Conference di Karlsruhe. Dopo i workshop di ieri oggi si è iniziato con i talk classici, si è iniziato a fare sul serio anche con il numero di partecipanti che ha dato mostra di sè durante il primo keynote dell'evento.]]></description>
			<content:encoded><![CDATA[<p>Eccoci qua a fare un breve riassunto della prima giornata dell&#8217;International PHP Conference di Karlsruhe. Dopo i workshop di ieri oggi si è iniziato con i talk classici, si è iniziato a fare sul serio anche con il numero di partecipanti che ha dato mostra di sè durante il primo keynote dell&#8217;evento.</p>
<p><strong>Web Application Architecture</strong> &#8211; Stefan Priebsch<br />
Si apre subito a tutta velocità con il talk sull&#8217;architettura delle applicazioni web. Ci si vuole concentrare sull&#8217;importanta che tali decisioni hanno nella fase di progettazione di un&#8217;applicazione e sull&#8217;impatto che hanno sul prodotto stesso. Il paragone è con l&#8217;architettura strutturale di chiese, campanili, ponti&#8230;insomma entità di un certo calibro. La differenza sostanziale è che nel software è piuttosto &#8220;semplice&#8221; sostituire intere porzioni di architettura (avendo scritto tutti i test del caso) senza far crollare tutto come potrebbe capitare sostituento le fondamenta della<br />
torre di Pisa&#8230;</p>
<p><strong>NetBeans IDE &#8211; The choice for PHP development</strong> &#8211; Petr Pisl<br />
Novità relative alla versione 6.8 di NetBeans che da qualche tempo utilizzo in versione beta del nightly builds. Il rilascio è fissato per il 10 dicembre. Tra tutte le novità il supporto per symfony è ciò che principalmente mi interessa visto che sono passato da Zend Studio For Eclipse (utilizzato brevemente) a NetBeans principalmente per il framework francese. Lanciare i comandi dell&#8217;ide invece che dalla shell, interrogare direttamente i database senza utilizzare un altro client, avere pieno supporto a PHP5.3&#8230;insomma tutto ciò di cui si può avere bisogno ad un prezzo contenuto in termini di ram e cpu. Mi devo informare se è possibile ottenere l&#8217;integrazione per il code coverage con Lime come già presente per PHPUnit.</p>
<p><strong>PHP in the Cloud</strong> &#8211; Ralph Schindler<br />
Keynote a cura di Schindler (Zend Technologies) che argomenta su alcuni temi che di sicuro riguarderanno il futuro dell&#8217;ecosistema che gravita attorno a PHP: NoSQL, Cloud&#8230;alcuni argomenti prenderanno piede prima di altri, che magari non riusciranno a fare breccia tra gli sviluppatori e le aziende. Personalmente vedo il cloud già come il presente, per il NoSQL credo ci si debba perdere qualche tempo e toccare con mano&#8230;</p>
<p><strong>Building real-time Applications with XMPP</strong> &#8211; Travis Swicegood<br />
Questo forse il talk da cui ci si aspettava di più per sporcarsi le mani con un po&#8217; di codice senza restare tanto sul teorico. La presentazione è sembrata proprio un&#8217;introduzione all&#8217;argomento, cosa che ad una conferenza del genere si dovrebbe dare per scontata. Non tanto perchè tutti devono sapere tutto ma perchè in grado di documentarsi da soli sulle basi&#8230;</p>
<p><strong>Towards the Cloud: Event-driven Architectures in PHP</strong> &#8211; Benjamin Eberlei<br />
Disaccoppiare i componenti delle applicazioni per riuscire a scalare meglio ed avere più flessibilità nell&#8217;utilizzo di nuove risorse come il cloud. Per fare questo viene presentata una tecnica di progettazione architetturale che si basa sugli eventi per scatenare le azioni da eseguire (in symfony event dispatcher vi dice qualcosa vero?) piuttosto che ricorrere a soluzioni come i cron che sono single threaded, possono ritardare fino ad un minuto l&#8217;esecuzione di qualcosa (ricordo che con i cron il minuti è la misura più piccola), in alcuni casi piuttosto difficile in termini di scalabilità. Spunto interessante per un progetto su cui sto lavorando proprio in questo periodo nel quale effettivamente qualche evento potrebbe proprio rimpiazzare dei cron jobs&#8230;da valutare attentamente.</p>
<p>Nell&#8217;insieme una giornata positiva. A domani per la seconda puntata!</p>
]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2009/11/17/ipc-karlsruhe-prima-giornata/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPC Karlsruhe: workshop day</title>
		<link>http://phpblog.it/2009/11/16/ipc-karlsruhe-workshop-day/</link>
		<comments>http://phpblog.it/2009/11/16/ipc-karlsruhe-workshop-day/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 23:31:42 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[eventi]]></category>
		<category><![CDATA[international php conference]]></category>
		<category><![CDATA[ipc]]></category>
		<category><![CDATA[karlsruhe]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://phpblog.it/?p=272</guid>
		<description><![CDATA[Giornata di workshop all'International PHP Conference di Karlsruhe. Non ci sono molti presenti ma è domenica ed i workshop, come mi è stato fatto notare, sono per pochi intimi. Ho seguito due workshop molto interessanti riguardanti MapReduce e Scrum.]]></description>
			<content:encoded><![CDATA[<p>Giornata di workshop all&#8217;International PHP Conference di Karlsruhe. Non ci sono molti presenti ma è domenica ed i workshop, come mi è stato fatto notare, sono per pochi intimi. Infatti non ricordo di aver trovato sul sito la possibilità di prenotare anche la giornata di domenica per il proprio pass. Ma veniamo a ciò che vi interessa veramente, ciò che ho potuto seguire: <strong>An introduction to MapReduce</strong> e<strong> Scrum &#8211; Just do it!.</strong></p>
<p><strong>An introduction to MapReduce</strong> &#8211; David Zülke</p>
<p>Eravamo decisamente in pochi, una decina occhio e croce. Argomento che inizialmente pare lontano: <strong>gestire grandi quantità di dati per ricavare informazioni aggregate</strong>. E quando si parla di grandi quantità si portano esempi come Facebook, Yahoo! et simili con ordini di grandezza di PB.</p>
<p>Non è il mio caso potreste pensare, un po&#8217; come ho fatto io inizialmente, salvo ricredermi quando ho messo a fuoco l&#8217;argomento sotto un altro punto di vista come per esempio l&#8217;analisi dei log del webserver per un grosso sito.</p>
<p>Personalmente ho avuto modo di mettere in pratica qualcosa che ignoravo: eseguire delle operazioni in due fasi distinte di <strong>mapping</strong> e poi di <strong>reduce</strong> per ottenere dati specifici partendo da una grande quantità di dati che presi in maniera grezza non danno un grosso valore.</p>
<p>Per un grosso cliente m&#8217;è capitato proprio di dover fare in modo che ogni ora i log creati dal webserver venissero utilizzati per ricavare il numero di impression generate da ogni banner presente sulle pagine del suo sito. Elaborare all&#8217;incirca 200MB di log ogni ora non è come lavorare con ordini dei PB ma inizia ad essere un&#8217;attività piuttosto time consuming quando da qualche decina o centinaia di migliaia di righe vogliamo ottenere una manciata di numeri.</p>
<p>Gli esempi presentati e le idee proposte forse mi permetteranno di migliorare questo compito: voto 8.</p>
<p><strong>Scrum &#8211; Just do it! &#8211; </strong>Sebastian Schürmann, Dominik Jungowski</p>
<p>Agile non è solo XP, esistono vari filoni che mettono in pratica il manifesto agile e avere una visione più completa anche sulle altre metodologie non fa di certo male. Il workshop mi ricorda molto quello ormai collaudatissimo che Jacopo Romei e Francesco Trucchia propongono con grande successo e che seguo sempre volentieri in Italia. Anche qui è una coppia coach-developer a tenere il talk da quanto mi pare di capire, uno più tecnico e l&#8217;altro più dedito al management dei team ed al coaching.</p>
<p>Interessante il gioco della palla in team per simulare l&#8217;evoluzione delle stime del team stesso e di come in poche iterazioni si riesca a raffinare la decisione finale per rispondere in modo corretto ad una certa project velocity.</p>
<p>Proposta anche qui la partita a carte per il <strong>game planning</strong>, non si parla di XP o Scrum ma di Agile. Le affinità sono molte, per lunghi tratti le cose sono coincidenti, per molti altri le differenze sono poche. L&#8217;idea di fondo è solo una, il manifesto agile, metterlo in pratica correttamente non permette di allontanarsi molto ipotizzando soluzioni &#8220;creative&#8221;. Ecco quindi che nascono le affinità.</p>
<p>Ognuno è poi libero di crearsi il metodo che meglio si adatta ai propri clienti ed al proprio mercato, allargare le vedute è fondamentale: voto 8.</p>
]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2009/11/16/ipc-karlsruhe-workshop-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Framework e template engine: mi dite la vostra?</title>
		<link>http://phpblog.it/2009/10/13/framework-e-template-engine-mi-dite-la-vostra/</link>
		<comments>http://phpblog.it/2009/10/13/framework-e-template-engine-mi-dite-la-vostra/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 09:28:24 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[framework]]></category>
		<category><![CDATA[phpblog]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[template engine]]></category>

		<guid isPermaLink="false">http://phpblog.it/?p=256</guid>
		<description><![CDATA[Template: PHP si, PHP no. Pare essere il tormentone della settimana. L'approccio dei vari framework là fuori è eterogeneo, il più delle volte la decisione è lasciata allo sviluppatore che adatta lo strumento alle proprie abitudini. Che si tratti di integralismo o di convinzioni fondate la discussione è sempre aperta.]]></description>
			<content:encoded><![CDATA[<p>La scorsa settimana Fabien Potencier ha pubblicato <a title="Twig" href="http://www.twig-project.org/" target="_blank"><strong>Twig</strong></a>, un template language per PHP, che entra di fatto a far parte dei prodotti di Sensio Labs. Twig, inizialmente sviluppato da <a title="Armin Ronacher" href="http://lucumr.pocoo.org/" target="_blank">Armin Ronacher</a>, è subito piaciuto a Potencier che ci ha messo del suo per portare il progetto verso quelle che sono le sue idee riguardo a quanto un template engine dovrebbe essere.</p>
<p>Sul <a title="suo blog" href="http://fabien.potencier.org/article/34/templating-engines-in-php">suo blog</a> Potencier ha espresso un po&#8217; di idee sullo stato attuale dell&#8217;arte in termini di template engine paragonando ciò che la rete offre, ha anche pubblicato alcuni test comparativi delle performance dei vari prodotti. Risultato: poco meno di 90 commenti in nemmeno una settimana ed <a title="un post in risposta da parte di Eli White" href="http://eliw.wordpress.com/2009/10/07/in-response-to-fabien-potencier-twig-php-templating/" target="_blank">un post in risposta da parte di Eli White</a> che solleva alcuni dubbi. Il cerchio si chiude con <a title="la risposta di Potencier in un altro post" href="http://fabien.potencier.org/article/35/templating-engines-in-php-follow-up" target="_blank">la risposta di Potencier in un altro post</a>. Consiglio la lettura dei post e di tutti i commenti visto che ci sono degli spunti davvero interessanti su cui non voglio soffermarmi al momento.</p>
<p><strong>Quello di cui vorrei parlare è ad un livello un po&#8217; più alto: template engine si o no? </strong></p>
<p>Personalmente negli ultimi anni ho sviluppato applicazioni con un framework, sviluppato internamente dall&#8217;azienda per cui lavoro, basato su Smarty per la creazione dei template. Da quando ho iniziato ad usare symfony, che ricordo è un MVC, mi sono sempre chiesto se mi mancasse davvero Smarty visto che i template si realizzano direttamente in PHP.</p>
<p>La risposta non la so ancora dare, posso tuttavia esprimere dei pareri sulle due strade che si possono seguire:</p>
<p><strong>PHP</strong></p>
<ul>
<li>creare i template direttamente in PHP evita di aggiungere un ulteriore layer al tutto</li>
<li>non si deve imparare un altro linguaggio (per semplice che sia)</li>
<li>permette più libertà (con attenzione)</li>
</ul>
<p><strong>TEMPLATE ENGINE</strong></p>
<ul>
<li>rende più leggibili i template, specialmente quelli più complessi</li>
<li>rende più accessibili, in termini di manutenzione, i template anche ai non sviluppatori</li>
<li>aiuta ad essere più aderenti al design pattern MVC</li>
</ul>
<p>Quello che più è importante secondo me, che si usi PHP od un template engine, è fare in modo che nella vista (V, di MVC) ci si limiti a presentare i dati e non ad elaborarli. <strong>PHP è uno strumento potente più del necessario per &#8220;mostrare&#8221; dei dati</strong>, va usato nel modo giusto. <strong>Un template engine dal canto suo</strong>, più scarno e povero di funzioni, <strong>potrebbe aiutare in tal senso</strong> a patto che non lo si vada ad estendere con mille plugin sviluppati ad hoc per tutte le occorrenze. A quel punto tanto vale restare con PHP&#8230;</p>
<p>E voi come agite? Quali sono le vostre esperienze in merito?</p>
]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2009/10/13/framework-e-template-engine-mi-dite-la-vostra/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Estatica passa a Symfony: migrazione passo passo</title>
		<link>http://phpblog.it/2009/05/07/estatica-passa-a-symfony-migrazione-passo-passo/</link>
		<comments>http://phpblog.it/2009/05/07/estatica-passa-a-symfony-migrazione-passo-passo/#comments</comments>
		<pubDate>Thu, 07 May 2009 08:00:13 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[dalla rete]]></category>
		<category><![CDATA[estatica]]></category>
		<category><![CDATA[migrazione]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://phpblog.it/2009/05/07/estatica-passa-a-symfony-migrazione-passo-passo/</guid>
		<description><![CDATA[Ricevo questa segnalazione da Fabrizio Pucci e volentieri la pubblico su PHPBlog.it, si tratta della prima puntata di una serie dedicata alla migrazione di Estatica verso Symfony il framework di sviluppo PHP. In questa serie di articoli voglio condividere vari aspetti tecnici delle fasi di migrazione di un grosso sito web come Estatica (enciclopedia di [...]]]></description>
			<content:encoded><![CDATA[<p>Ricevo questa segnalazione da Fabrizio Pucci e volentieri la pubblico su PHPBlog.it, si tratta della prima puntata di una serie dedicata alla <a title="Estatica migra a Symfony" href="http://www.estatica.it/letture.php?azione=articolo&amp;testo=migrazione-di-estatica-al-framework-symfony-parte-1">migrazione di Estatica verso Symfony</a> il framework di sviluppo PHP.</p>
<blockquote><p>In questa serie di articoli voglio condividere vari aspetti tecnici delle fasi di migrazione di un grosso sito web come <a href="http://www.estatica.it/">Estatica</a> (enciclopedia di musica italiana), all&#8217;utilizzo del framework open source PHP Symfony.</p></blockquote>
<p>La serie è potenzialmente molto interessante visto che potrebbe affrontare molti di quei problemi che lo sviluppatore può incontrare durante la migrazione di un&#8217;applicazione già esistente. Buona lettura!</p>
]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2009/05/07/estatica-passa-a-symfony-migrazione-passo-passo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>10 suggerimenti per migliorare il proprio codice</title>
		<link>http://phpblog.it/2008/11/24/10-suggerimenti-per-migliorare-il-proprio-codice/</link>
		<comments>http://phpblog.it/2008/11/24/10-suggerimenti-per-migliorare-il-proprio-codice/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 06:00:32 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[dalla rete]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[smashingmagazine]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://phpblog.it/2008/11/24/10-suggerimenti-per-migliorare-il-proprio-codice/</guid>
		<description><![CDATA[Smashing Magazine è sempre una fonte interessante di articoli su vari aspetti del mondo informatico ed oggi vi segnalo una lettura che riguarda chiaramente la programmazione in PHP ed è stata scritta da Glen Stansberry. Nell&#8217;articolo vengono proposti 10 suggerimenti per migliorare la propria qualità di programmazione o quantomeno del codice prodotto, alcuni sono davvero [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.smashingmagazine.com/" title="Smashing Magazine"><strong>Smashing Magazine</strong></a> è sempre una fonte interessante di articoli su vari aspetti del mondo informatico ed oggi vi segnalo una lettura che riguarda chiaramente la programmazione in PHP ed è stata scritta da Glen Stansberry. <a href="http://www.smashingmagazine.com/2008/11/18/10-advanced-php-tips-to-improve-your-progamming/" title="10 advanced PHP tips to improve your programming">Nell&#8217;articolo vengono proposti <strong>10 suggerimenti</strong></a><strong> per migliorare la propria qualità di programmazione</strong> o quantomeno del codice prodotto, alcuni sono davvero interessanti.</p>
]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2008/11/24/10-suggerimenti-per-migliorare-il-proprio-codice/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>24hrsCamp</title>
		<link>http://phpblog.it/2008/11/12/24hrscamp/</link>
		<comments>http://phpblog.it/2008/11/12/24hrscamp/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 06:00:09 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[eventi]]></category>
		<category><![CDATA[24hrsCamp]]></category>
		<category><![CDATA[milano]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programmatori]]></category>

		<guid isPermaLink="false">http://phpblog.it/2008/11/12/24hrscamp/</guid>
		<description><![CDATA[Ricevo questa richiesta e pubblico volentieri visto il campo di nostro interesse. Se qualcuno fosse interessato si faccia avanti tramite il sito ufficiale dell&#8217;evento. 24hrsCamp è un evento di 24 ore che mira alla realizzazione concreta di un progetto umanitario. Si terra&#8217; a Milano il sabato 15 e domenica 16 Novembre ed e&#8217; alla ricerca [...]]]></description>
			<content:encoded><![CDATA[<p><em>Ricevo questa richiesta e pubblico volentieri visto il campo di nostro interesse. Se qualcuno fosse interessato si faccia avanti tramite il sito ufficiale dell&#8217;evento. </em></p>
<p><strong>24hrsCamp</strong> è un evento di 24 ore che mira alla realizzazione concreta di un progetto umanitario. Si terra&#8217; a Milano il sabato 15 e domenica 16 Novembre ed e&#8217; alla ricerca di sviluppatori PHP ma non solo! 24hrsCamp, nato dalle frustrazioni, dalle delusioni e dalle speranze infrante della vita lavorativa di tutti i giorni, si propone di realizzare qualcosa.</p>
<p><span id="more-197"></span>Come? Attraverso eventi di 24 ore, in cui chiunque può partecipare e dare il proprio contributo. Ognuno di noi è portatore di idee, conoscenza, metodi e procedure che, per qualche motivo, non riesce a concretizzare. Il nostro obiettivo, ambizioso, è di organizzare eventi dove lasciarsi alle spalle tutto questo! 24 ore per progettare, al termine delle quali si chiude un progetto e lo si consegna alla comunità Internet.</p>
<p>Il nostro obiettivo è quello di creare un nuovo format di evento che superi i normali limiti del puro brainstorming e cerchi di capire quanto sia possibile progettare e fare in un arco di tempo delle 24 ore. Non pensate solo ad un idea per tecnici, in realtà il nostro desiderio sarebbe quello di vedere in atto un esperimento pluridisciplinare.</p>
<p>Maggiori informazioni sul sito ufficiale: <a href="http://24hrscamp.org/?page_id=3">http://24hrscamp.org/?page_id=3</a></p>
]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2008/11/12/24hrscamp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

