<?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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Francesco (cphp) Trucchia</title><link>http://www.francescotrucchia.it</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/cphp" /><description>...il blog di un freelance informatico appassionato di web</description><language>en</language><lastBuildDate>Mon, 07 May 2012 16:25:00 PDT</lastBuildDate><generator>http://wordpress.org/?v=3.3.2</generator><sy:updatePeriod xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">hourly</sy:updatePeriod><sy:updateFrequency xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">1</sy:updateFrequency><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/cphp" /><feedburner:info uri="cphp" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><feedburner:emailServiceId>cphp</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><title>Integrazione con un “SMTP relay on the cloud”</title><link>http://feedproxy.google.com/~r/cphp/~3/gVw0F3eroXU/</link><category>Di tutto un po'...</category><category>ideato</category><category>LinkedIn</category><category>sviluppo agile</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">cphp</dc:creator><pubDate>Thu, 04 Aug 2011 07:09:36 PDT</pubDate><guid isPermaLink="false">http://www.cphp.it/?p=360</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Recentemente ho dovuto affrontare il problema di <a href="http://blog.oltretata.it/leducatrice-ha-ricevuto-il-mio-messaggio">monitorare il corretto invio di e-mail da un sito web</a> verso gli utenti destinatari. Non essendo questo il core business del sito web mi sono subito chiesto se ci fosse qualche servizio esterno che si potesse occupare della cosa al posto mio. La risposta è arrivata presto ed ha preso il nome di SendGrid.</p>
<p>Direttamente dal sito del produttore leggiamo:</p>
<blockquote><p>SendGrid&#8217;s cloud-based email infrastructure relieves  businesses of the cost and complexity of maintaining custom email  systems. <a href="http://sendgrid.com"> SendGrid</a> provides reliable delivery, scalability and real-time  analytics along with flexible API&#8217;s that make custom integration a  breeze.</p></blockquote>
<p>Attraverso SendGrid in sostanza è possibile semplificare l&#8217;invio delle email aggiungendo simpatiche funzionalità come:</p>
<ul>
<li>Monitoraggio real time dell&#8217;invio, apertura, spam, rifiuto, ecc di una email</li>
<li>Possibilità di inserire una &#8220;signature&#8221; su tutte le mail</li>
<li>Possibilità attraverso degli header della mail di categorizzare le email per poter fare analitiche</li>
<li>Invio di newsletter</li>
<li>Invio dei report di spam</li>
<li>Possibilità di integrare la propria piattaforma ad ogni evento collegato al workflow di delivery di email</li>
</ul>
<p>Questa ultima funzionalità è stata particolarmente importante per il mio progetto, poichè molto facilemente ora riesco a far conoscere agli utentei del mio sito web se un certo messaggio è stato inviato e soprattutto se è stato aperto.</p>
<p>Se siete interessati anche voi ad integrare anche la vostra piattaforma web con questo servizio non esitate a contattarmi!!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/cphp?a=gVw0F3eroXU:u9uxFaywXfE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/cphp?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=gVw0F3eroXU:u9uxFaywXfE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/cphp?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=gVw0F3eroXU:u9uxFaywXfE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/cphp?i=gVw0F3eroXU:u9uxFaywXfE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=gVw0F3eroXU:u9uxFaywXfE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/cphp?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/cphp/~4/gVw0F3eroXU" height="1" width="1"/>]]></content:encoded><description>Recentemente ho dovuto affrontare il problema di monitorare il corretto invio di e-mail da un sito web verso gli utenti destinatari. Non essendo questo il core business del sito web mi sono subito chiesto se ci fosse qualche servizio esterno che si potesse occupare della cosa al posto mio. La risposta è arrivata presto ed [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.francescotrucchia.it/2011/08/04/integrazione-con-un-smtp-relay-on-the-cloud/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.francescotrucchia.it/2011/08/04/integrazione-con-un-smtp-relay-on-the-cloud/</feedburner:origLink></item><item><title>Geolocalizzazione in PHP</title><link>http://feedproxy.google.com/~r/cphp/~3/lJeGQSxWQJM/</link><category>Di tutto un po'...</category><category>ideato</category><category>LinkedIn</category><category>sviluppo agile</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">cphp</dc:creator><pubDate>Wed, 06 Jul 2011 08:40:15 PDT</pubDate><guid isPermaLink="false">http://www.cphp.it/?p=346</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Negli ultimi mesi ho lavorato ad un mio progetto personale, <a href="http://www.oltretata.it">Oltre Tata</a>, probabilmente alcuni di voi ne avranno già <a href="http://www.facebook.com/oltretata">sentito parlare</a>. In pratica un motore di ricerca geolocalizzato attraverso il quale agevolare l&#8217;incontro tra domanda ed offerta di educatrice familiari e famiglie.</p>
<p>In questo progetto ho esplorato in maniera dettagliata vari servizi esterni di geolocalizzazione, in pratica dei servizi web che prendono in input un indirizzo e restituiscono come risultato un punto nello spazio terrestre identificato attraverso la latitudine e la longitudine.</p>
<p>Il mio requisito principale era quello di avere più di un servizio attivo in modo da diminuire il rischio di non avere una risposta in caso il servizio fosse down o non trovasse l&#8217;indirizzo stesso. Dato questo requisito ho iniziato a studiare i vari servizi in giro per la rete e alla fine ne ho scelti due: <a href="http://code.google.com/intl/it-IT/apis/maps/documentation/geocoding/">Google Geocoding</a> e <a href="http://wiki.openstreetmap.org/wiki/Nominatim">OpenStreetMap Nominatim</a>.</p>
<p>Scelti i due servizi ho deciso di creare un componente php 5.3 che fosse trasparente nelle configurazione dei servizi e nel modo in cui il mio codice potesse comunicare con loro ed è nato <a href="https://github.com/cphp/GeoAdapter">GeoAdapter</a>. Il componente è rilasciato sotto licenza MIT.</p>
<p>L&#8217;architettura del componente è suddivisa in una classe Search che si occupa di passare la query ai servizi. Due classi di servizio che adattano l&#8217;interfaccia di Google Geocoding e OpenStreetMap Nominatim all&#8217;interfaccia della classe Search, una classe SearchCache che serve a crare una cache delle richieste fatte in modo da abbassare il numero di chiamate che si fa al servizio e una classe Location che viene restituita come risultato della ricerca che rappresenta il punto cercato e implementa un metodo per cercare la distanza tra due punti.</p>
<p>Il componente è del tutto configurabile e estendendo l&#8217;interfaccia Service è possibile aggiungere altri servizi di geolocalizzazione. Di seguito un esempio di utilizzo del componente:</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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span>__DIR__<span style="color: #339933;">.</span><span style="color: #0000ff;">'/../lib/Geo/Autoload.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
Geo\Autoload<span style="color: #339933;">::</span><span style="color: #004000;">register</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> Search <span style="color: #000000; font-weight: bold;">extends</span> Geo\Search
<span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000000; font-weight: bold;">function</span> configure<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addService</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Geo\Service\OpenStreetMap\Nominatim<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addService</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Geo\Service\GoogleMap\GeoCode<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000088;">$search</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Search<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$search</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'via Montenapoleone, Milano'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$location_a</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$search</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getFirst</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$search</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'piazza Boccolino, Osimo'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$location_b</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$search</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getFirst</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Address1: via Montenapoleone, Milano'</span><span style="color: #339933;">.</span>PHP_EOL<span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Latitude: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$location_a</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getLatitude</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>PHP_EOL<span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Longitude: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$location_a</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getLongitude</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>PHP_EOL<span style="color: #339933;">.</span>PHP_EOL<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Address2: piazza Boccolino, Osimo'</span><span style="color: #339933;">.</span>PHP_EOL<span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Latitude: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$location_b</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getLatitude</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>PHP_EOL<span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Longitude: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$location_b</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getLongitude</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>PHP_EOL<span style="color: #339933;">.</span>PHP_EOL<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Distance from Address1 to Address2: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$location_a</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">distance</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$location_b</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' Km'</span><span style="color: #339933;">.</span>PHP_EOL<span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Questo codice restituirà il seguente output:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Address1: via Montenapoleone, Milano
Latitude: <span style="color: #000000;">45.4685166</span>
Longitude: <span style="color: #000000;">9.1948891</span>
&nbsp;
Address2: piazza Boccolino, Osimo
Latitude: <span style="color: #000000;">43.4863912</span>
Longitude: <span style="color: #000000;">13.4825126</span>
&nbsp;
Distance from Address1 to Address2: <span style="color: #000000;">251.64</span> Km</pre></div></div>

<p>Attraverso questo componente sono ruscito a localizzare tutte le educatrici che si iscrivono ad <a href="http://www.oltretata.it">Oltre Tata</a> e a memorizzare in fase di regitrazione del loro profilo le loro coordinate geospaziali.</p>
<p>Una volta memorizzate le loro coordinate su database ho dovuto creare una query che dato il punto di ricerca della famiglia restituisse in un raggio di 30km tutte le educatrici disponibili. Un <a href="http://derickrethans.nl/spatial-indexes-calculating-distance.html">post di Derick</a> mi è corso in aiuto e dopo un&#8217;attenta lettura di tutte le funzioni trigonometriche per il calcolo delle distanze ho trovato la soluzione implementando la seguente formula in una query SQL:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">acos<span style="color: #7a0874; font-weight: bold;">&#40;</span> sin<span style="color: #7a0874; font-weight: bold;">&#40;</span>latA<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000; font-weight: bold;">*</span> sin<span style="color: #7a0874; font-weight: bold;">&#40;</span>latB<span style="color: #7a0874; font-weight: bold;">&#41;</span> +cos<span style="color: #7a0874; font-weight: bold;">&#40;</span>latA<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000; font-weight: bold;">*</span> cos<span style="color: #7a0874; font-weight: bold;">&#40;</span>latB<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000; font-weight: bold;">*</span> cos<span style="color: #7a0874; font-weight: bold;">&#40;</span>longB - longA<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000;">3956</span></pre></div></div>

<p>dove latA è la latitudine del punto A, latB è la latitudine del punto B, longB è la longitudine del punto B e longA è la longitudine del punto A. Alla fine della formula moltiplico tutto per 3956 per avere il totale in km. Tutti i valori di latitudine e longitudine devono essere dati in valoti radianti.</p>
<p>In questo modo ad esempio se voglio cercare <a href="http://www.oltretata.it/citta/milano">babysitter a milano</a> il sistema cerca prima il punto di ricerca e poi trova tutte le educatrici nelle vicinanze di quel punto, stessa cosa per le altre città come <a href="http://www.oltretata.it/citta/roma">Roma</a>, <a href="http://www.oltretata.it/citta/napoli">Napoli</a>, <a href="http://www.oltretata.it/citta/ancona">Ancona</a> e così via.</p>
<p>Sentitevi liberi di clonare GeoAdapeter e di aggiungere ulteriori servizi, o di migliorare il componente, però mi raccomando inviatemi le vostre pull request <img src='http://www.francescotrucchia.it/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  !!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/cphp?a=lJeGQSxWQJM:XJjUkHOh0po:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/cphp?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=lJeGQSxWQJM:XJjUkHOh0po:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/cphp?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=lJeGQSxWQJM:XJjUkHOh0po:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/cphp?i=lJeGQSxWQJM:XJjUkHOh0po:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=lJeGQSxWQJM:XJjUkHOh0po:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/cphp?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/cphp/~4/lJeGQSxWQJM" height="1" width="1"/>]]></content:encoded><description>Negli ultimi mesi ho lavorato ad un mio progetto personale, Oltre Tata, probabilmente alcuni di voi ne avranno già sentito parlare. In pratica un motore di ricerca geolocalizzato attraverso il quale agevolare l&amp;#8217;incontro tra domanda ed offerta di educatrice familiari e famiglie. In questo progetto ho esplorato in maniera dettagliata vari servizi esterni di geolocalizzazione, [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.francescotrucchia.it/2011/07/06/geolocalizzazione-in-php/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">3</slash:comments><feedburner:origLink>http://www.francescotrucchia.it/2011/07/06/geolocalizzazione-in-php/</feedburner:origLink></item><item><title>Un matrimonio veramente fico!!</title><link>http://feedproxy.google.com/~r/cphp/~3/J7FvcMC33AI/</link><category>Di tutto un po'...</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">cphp</dc:creator><pubDate>Wed, 06 Jul 2011 07:09:00 PDT</pubDate><guid isPermaLink="false">http://www.cphp.it/?p=344</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>E&#8217; già passato più di un mese dal 21 Maggio, e ormai da qualche settimana sono tornato alla solita routine, anche se con la mente sono ancora alle Seychelles.</p>
<p>Con un po&#8217; di ritardo volevo ringraziare tutti quelli che hanno reso il matrimonio mio e di Chiara, il più bel giorno che abbia mai vissuto nella mia vita. Siete stati veramente grandi, e quella giornata ha sicuramente superato ogni mia aspettativa. Siamo andati oltre ogni formalità e abbiamo rischiato anche un po&#8217; <img src='http://www.francescotrucchia.it/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  festeggiando alla grande!! Ringrazio anche tutto il parentato che è sceso con il pulmin per l&#8217;evento&#8230;.!!</p>
<p>Beh che dire, io e Chiara sicuramente vorremmo ripetere l&#8217;evento&#8230; vi terrò aggiornati <img src='http://www.francescotrucchia.it/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  !!</p>
<p>Grazie di cuore</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/cphp?a=J7FvcMC33AI:uZyKX-jInP8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/cphp?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=J7FvcMC33AI:uZyKX-jInP8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/cphp?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=J7FvcMC33AI:uZyKX-jInP8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/cphp?i=J7FvcMC33AI:uZyKX-jInP8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=J7FvcMC33AI:uZyKX-jInP8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/cphp?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/cphp/~4/J7FvcMC33AI" height="1" width="1"/>]]></content:encoded><description>E&amp;#8217; già passato più di un mese dal 21 Maggio, e ormai da qualche settimana sono tornato alla solita routine, anche se con la mente sono ancora alle Seychelles. Con un po&amp;#8217; di ritardo volevo ringraziare tutti quelli che hanno reso il matrimonio mio e di Chiara, il più bel giorno che abbia mai vissuto [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.francescotrucchia.it/2011/07/06/un-matrimonio-veramente-fico/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.francescotrucchia.it/2011/07/06/un-matrimonio-veramente-fico/</feedburner:origLink></item><item><title>Si avvicina un grande giorno</title><link>http://feedproxy.google.com/~r/cphp/~3/X0O6krtIGfk/</link><category>Di tutto un po'...</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">cphp</dc:creator><pubDate>Thu, 12 May 2011 05:20:55 PDT</pubDate><guid isPermaLink="false">http://www.cphp.it/?p=341</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Era il lontano 2001, quando conobbi una ragazza alla facoltà di psicologia, una tipa esplosiva che mi ha attratto fin dal primo minuto. Questa ragazza si chiama Chiara e per chi non la conoscesse è la mia attuale compagna nonché futura sposa. Sono passati molti anni da quel primo giorno, ma ve lo dico sinceramente a me non sembrano così tanti.</p>
<p>Il 21 Maggio prossimo per me e Chiara sarà un giorno molto importante, il giorno del nostro matrimonio. Voglio ringraziare, prima di tutto Chiara, che mi sopporta da così tanto tempo e che follemente ha deciso di sopportarmi ancora per un bel po&#8217; <img src='http://www.francescotrucchia.it/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  . Voglio anche ringraziare tutti i miei amici (bastardi) che in questi ultimi quaranta giorni ci hanno rallegrato le giornate con un count down veramente creativo.</p>
<p>Beh che dire, l&#8217;emozione sale insieme al desiderio di vedere arrivare questo giorno e viverlo appieno con tutti gli amici e i parenti. Poi ci attende un bel viaggio alle Seychelles!!!</p>
<p>Per chi ci sarà ci vediamo il 21 Maggio!!!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/cphp?a=X0O6krtIGfk:SBkbSOhUqyc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/cphp?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=X0O6krtIGfk:SBkbSOhUqyc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/cphp?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=X0O6krtIGfk:SBkbSOhUqyc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/cphp?i=X0O6krtIGfk:SBkbSOhUqyc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=X0O6krtIGfk:SBkbSOhUqyc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/cphp?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/cphp/~4/X0O6krtIGfk" height="1" width="1"/>]]></content:encoded><description>Era il lontano 2001, quando conobbi una ragazza alla facoltà di psicologia, una tipa esplosiva che mi ha attratto fin dal primo minuto. Questa ragazza si chiama Chiara e per chi non la conoscesse è la mia attuale compagna nonché futura sposa. Sono passati molti anni da quel primo giorno, ma ve lo dico sinceramente [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.francescotrucchia.it/2011/05/12/si-avvicina-un-grande-giorno/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">5</slash:comments><feedburner:origLink>http://www.francescotrucchia.it/2011/05/12/si-avvicina-un-grande-giorno/</feedburner:origLink></item><item><title>Interessati a fare refactoring del vostro codice php?</title><link>http://feedproxy.google.com/~r/cphp/~3/XfaDaCCDZTU/</link><category>Di tutto un po'...</category><category>ideato</category><category>LinkedIn</category><category>sviluppo agile</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">cphp</dc:creator><pubDate>Tue, 16 Nov 2010 23:57:41 PST</pubDate><guid isPermaLink="false">http://www.cphp.it/?p=333</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Il 6 Dicembre 2010 alle ore 11:00 si terrà il <a href="http://www.zend.com/it/company/news/event/webinar-pro-php-refactoring">primo webinar</a> in collaborazione tra <a href="http://www.zend.com/it/">Zend</a> ed <a href="http://www.ideato.it">Ideato</a> sul <a href="http://www.apress.com/book/view/9781430227274">refactoring del codice PHP</a>. Di seguito un estratto direttamente dal sito ufficiale di zend:</p>
<blockquote><p>Sono sempre più numerose le applicazioni legacy aziendali che sono diventate difficili da manutenere e da estendere. La riscrittura completa di un&#8217;applicazione non è quasi mai l&#8217;approccio corretto da seguire, soprattutto dal punto di vista business. In questo webinar si parlerà di come realizzare il refactoring di codice PHP e di alcune metodologie di ingegneria del software da seguire per non perdersi nei meandri del codice. Dal punto di vista degli strumenti da utilizzare si parlerà di PHPUnit e Selenium, per il testing automatico del codice PHP, e di Zend Studio, l&#8217;IDE di Zend Technologies per facilitare il refactoring e la gestione del codice PHP.<br style="padding: 0px; margin: 0px;" /><br style="padding: 0px; margin: 0px;" /><span style="font-weight: bold; padding: 0px; margin: 0px;">Presentano</span>: Francesco Trucchia, CTO di Ideato srl, Solution Partner di Zend Technologies e Enrico Zimuel, Senior Consultant &amp; Architect, Zend Technologies</p></blockquote>
<p>Il webinar è gratutito e in lingua italiana. <a href="http://www.zend.com/webinar/register/?eventNumber=571785893">Registratevi</a>!!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/cphp?a=XfaDaCCDZTU:m5OTOPx9CKw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/cphp?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=XfaDaCCDZTU:m5OTOPx9CKw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/cphp?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=XfaDaCCDZTU:m5OTOPx9CKw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/cphp?i=XfaDaCCDZTU:m5OTOPx9CKw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=XfaDaCCDZTU:m5OTOPx9CKw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/cphp?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/cphp/~4/XfaDaCCDZTU" height="1" width="1"/>]]></content:encoded><description>Il 6 Dicembre 2010 alle ore 11:00 si terrà il primo webinar in collaborazione tra Zend ed Ideato sul refactoring del codice PHP. Di seguito un estratto direttamente dal sito ufficiale di zend: Sono sempre più numerose le applicazioni legacy aziendali che sono diventate difficili da manutenere e da estendere. La riscrittura completa di un&amp;#8217;applicazione [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.francescotrucchia.it/2010/11/17/interessati-a-fare-refactoring-del-vostro-codice/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">3</slash:comments><feedburner:origLink>http://www.francescotrucchia.it/2010/11/17/interessati-a-fare-refactoring-del-vostro-codice/</feedburner:origLink></item><item><title>Esperimenti di un’applicazione nativa per iphone con PhoneGap e Titanium.</title><link>http://feedproxy.google.com/~r/cphp/~3/Vr_5omNJQyY/</link><category>Di tutto un po'...</category><category>ideato</category><category>javascript</category><category>sviluppo agile</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">cphp</dc:creator><pubDate>Sun, 11 Apr 2010 04:48:04 PDT</pubDate><guid isPermaLink="false">http://www.cphp.it/?p=326</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Dopo <a href="http://twitter.com/cphp/status/11437704639">il bellissimo regalo</a> che ideato mi ha fatto il giorno del suo compleanno, ho iniziato ha studiare come poter scrivere applicazione su iphone senza conoscere <a href="Dopo il bellissimo regalo che ideato mi ha fatto il giorno del suo compleanno, ho iniziato ha studiare come poter scrivere applicazioni su iphone senza conoscere objective-c.  Cercando un po' su internet ho trovato due progetti molto interessanti:  Phonegap Titanium Entrambi si presentano come tool di sviluppo rapidi per creare applicazioni native per dispositivi mobile (iphone, android, blackberry) in html + javascript + css. Conoscendo molto bene questi tre linguaggi, ho pensato di iniziare a studiare questi tool per vederne le capacità.  Con la regola dell'80-20 che applichiamo in ideato (in pratica ogni sviluppatore può utilizzare il 20% dei suo tempo per studiare, fare prototipi, ecc), insieme con Michele e Fullo, abbiamo deciso di sperimentare entrambe le librerie per creare la nostra prima applicazione per iphone e android.  L'idea è quella di creare un'applicazione che, interfacciandosi con il servizio web Joind.in, faccia vedere i talk &quot;on air&quot; durante un evento. L'obiettivo è quello di lanciare l'applicazione durante il phpday 2010 che si terrà il 13, 14 e 15 maggio a Corropoli (TE).  Vi terremo aggiornati sull'applicazione su questo blog.  Se volete seguirci da più vicino abbiamo creato un repository GitHub, dove metteremo tutto il codice.  ">objective-c</a>.</p>
<p>Cercando un po&#8217; su internet ho trovato due progetti molto interessanti:</p>
<ul>
<li><a href="http://phonegap.com">Phonegap</a></li>
<li><a href="http://www.appcelerator.com">Titanium</a></li>
</ul>
<p>Entrambi si presentano come tool di sviluppo rapidi per creare applicazioni native per dispositivi mobile (iphone, android, blackberry) in html + javascript + css. Conoscendo molto bene questi tre linguaggi, ho pensato di iniziare a studiare questi tool per vederne le capacità.</p>
<p>Con la regola dell&#8217;80-20 che applichiamo in <a href="http://www.ideato.it">ideato</a> (in pratica ogni sviluppatore può utilizzare il 20% dei suo tempo per studiare, fare prototipi, ecc), insieme con <a href="http://www.ildipendente.com">Michele</a> e <a href="http://www.fullo.net">Fullo</a>, abbiamo deciso di sperimentare entrambe le librerie per creare la nostra prima applicazione per iphone e android.</p>
<p>L&#8217;idea è quella di creare un&#8217;applicazione che, interfacciandosi con il servizio web <a href="http://joind.in/api">Joind.in</a>, faccia vedere i talk &#8220;on air&#8221; durante un evento. L&#8217;obiettivo è quello di lanciare l&#8217;applicazione durante il <a href="http://www.phpday.it">phpday 2010</a> che si terrà il 13, 14 e 15 maggio a <a href="http://maps.google.it/maps?f=q&amp;source=s_q&amp;hl=it&amp;geocode=&amp;q=corropoli&amp;sll=41.442726,12.392578&amp;sspn=18.588764,38.276367&amp;ie=UTF8&amp;hq=&amp;hnear=Corropoli+Teramo,+Abruzzo&amp;ll=42.83343,13.83316&amp;spn=0.071125,0.149517&amp;t=h&amp;z=13">Corropoli (TE)</a>.</p>
<p>Vi terremo aggiornati sull&#8217;applicazione su questo blog.</p>
<p>Se volete seguirci da più vicino abbiamo creato un <a href="http://github.com/ideato/Join.On.Air">repository GitHub</a>, dove metteremo tutto il codice.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/cphp?a=Vr_5omNJQyY:Zt53LWESTyQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/cphp?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=Vr_5omNJQyY:Zt53LWESTyQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/cphp?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=Vr_5omNJQyY:Zt53LWESTyQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/cphp?i=Vr_5omNJQyY:Zt53LWESTyQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=Vr_5omNJQyY:Zt53LWESTyQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/cphp?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/cphp/~4/Vr_5omNJQyY" height="1" width="1"/>]]></content:encoded><description>Dopo il bellissimo regalo che ideato mi ha fatto il giorno del suo compleanno, ho iniziato ha studiare come poter scrivere applicazione su iphone senza conoscere objective-c. Cercando un po&amp;#8217; su internet ho trovato due progetti molto interessanti: Phonegap Titanium Entrambi si presentano come tool di sviluppo rapidi per creare applicazioni native per dispositivi mobile [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.francescotrucchia.it/2010/04/11/esperimenti-di-unapplicazione-nativa-per-iphone-con-phonegap-e-titanium/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">5</slash:comments><feedburner:origLink>http://www.francescotrucchia.it/2010/04/11/esperimenti-di-unapplicazione-nativa-per-iphone-con-phonegap-e-titanium/</feedburner:origLink></item><item><title>Per conoscere e non dimenticare: l’aquila è degli aquilani!!</title><link>http://feedproxy.google.com/~r/cphp/~3/ayB_bAUq8oE/</link><category>Di tutto un po'...</category><category>Pensieri</category><category>aquila</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">cphp</dc:creator><pubDate>Fri, 09 Apr 2010 01:36:10 PDT</pubDate><guid isPermaLink="false">http://www.cphp.it/?p=322</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Ho scoperto attraverso il blog di <a href="http://www.stefanomainardi.com/2010/02/16/laquila-e-ancora-nostra/">Stefano</a> questo video, lo voglio condividere con voi, per conoscere, per non dimenticare!!</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/7yfBYNfWn6o&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="550" height="385" src="http://www.youtube.com/v/7yfBYNfWn6o&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>L&#8217;aquila è degli aquilani!!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/cphp?a=ayB_bAUq8oE:TnbSFDsGaLI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/cphp?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=ayB_bAUq8oE:TnbSFDsGaLI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/cphp?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=ayB_bAUq8oE:TnbSFDsGaLI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/cphp?i=ayB_bAUq8oE:TnbSFDsGaLI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=ayB_bAUq8oE:TnbSFDsGaLI:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/cphp?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/cphp/~4/ayB_bAUq8oE" height="1" width="1"/>]]></content:encoded><description>Ho scoperto attraverso il blog di Stefano questo video, lo voglio condividere con voi, per conoscere, per non dimenticare!! L&amp;#8217;aquila è degli aquilani!!</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.francescotrucchia.it/2010/04/09/per-conoscere-e-non-dimenticare-laquila-e-degli-aquilani/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://www.francescotrucchia.it/2010/04/09/per-conoscere-e-non-dimenticare-laquila-e-degli-aquilani/</feedburner:origLink></item><item><title>Agile significa veloce?</title><link>http://feedproxy.google.com/~r/cphp/~3/25Ulsnx6MaM/</link><category>Di tutto un po'...</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">cphp</dc:creator><pubDate>Sat, 20 Feb 2010 13:49:31 PST</pubDate><guid isPermaLink="false">http://www.cphp.it/?p=320</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://milano-xpug.pbworks.com/Velocita">Leggo per la prima volta</a> nel wiki dell&#8217;<a href="http://milano-xpug.pbworks.com">XPug Milano</a> un post scritto da <a href="http://www.gabrielelana.it/">Gabriele</a> ormai qualche anno fa, ma attuale come non mai sul perché quando si lavora con i metodi agili sembra inizialmente di essere lenti. Il post è molto chiaro e piacevole da leggere e secondo me spiega molto bene perché spesso si confonde agile con veloce!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/cphp?a=25Ulsnx6MaM:Kv-wIfzKeKk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/cphp?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=25Ulsnx6MaM:Kv-wIfzKeKk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/cphp?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=25Ulsnx6MaM:Kv-wIfzKeKk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/cphp?i=25Ulsnx6MaM:Kv-wIfzKeKk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=25Ulsnx6MaM:Kv-wIfzKeKk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/cphp?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/cphp/~4/25Ulsnx6MaM" height="1" width="1"/>]]></content:encoded><description>Leggo per la prima volta nel wiki dell&amp;#8217;XPug Milano un post scritto da Gabriele ormai qualche anno fa, ma attuale come non mai sul perché quando si lavora con i metodi agili sembra inizialmente di essere lenti. Il post è molto chiaro e piacevole da leggere e secondo me spiega molto bene perché spesso si [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.francescotrucchia.it/2010/02/20/agile-significa-veloce/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.francescotrucchia.it/2010/02/20/agile-significa-veloce/</feedburner:origLink></item><item><title>Alcune regole del Pair Programming</title><link>http://feedproxy.google.com/~r/cphp/~3/_ZYaWsSG0Kg/</link><category>ideato</category><category>Startup</category><category>WebDeveloper</category><category>LinkedIn</category><category>sviluppo agile</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">cphp</dc:creator><pubDate>Mon, 11 Jan 2010 23:51:18 PST</pubDate><guid isPermaLink="false">http://www.cphp.it/?p=310</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Qualche settimana fa, una coppia di sviluppatori del <a href="http://www.theideatos.com">team nel quale lavoro</a>, mi ha chiesto:</p>
<blockquote><p>&#8220;Ciccio, ma quali sono le regole del <a href="http://en.wikipedia.org/wiki/Pair_programming">Pair Programming</a>? Facciamo Pair Programming da alcuni mesi, ma a volte non ci sentiamo molto efficaci, perchè discutiamo troppo nel prendere decisioni condivise e perchè il nostro livello di conoscenza non è lo stesso.&#8221;</p></blockquote>
<p>Quando dal team emergono queste domande, i miei occhi si illuminano, perchè solo di fronte alla consapevolezza si possono dare piccole regole per migliorare se stessi.</p>
<p>Di fronte alle loro domande non ho risposto subito, ho rinviato la discussione ad un <a href="http://www.ideato.it/Blog/In-primo-piano/I-dojo-di-Ideato">dojo</a> interno, che organizzeremo in <a href="http://www.ideato.it">ideato</a> a breve tempo.</p>
<p>Tuttavia, oggi, vorrei raccontarvi quando secondo me il Pair Programming è efficace.</p>
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;">La metafora che uso spesso per far capire il Pair Programming è quella dei guidatori di rally, chi scrive codide è il guidatore, chi sta a fianco e osserva è il navigatore. Se il guidatore non si fida del navigatore, dove va a finire l&#8217;auto?</p>
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;">Come in ogni coppia anche nel Pair Programming si è efficaci se si rispettano i ruoli.</p>
<ol>
<li><strong>Il guidatore si deve fidare del navigatore</strong>.<br />
Nella coppia ci deve essere fiducia. Il punto di vista predominante deve essere quello del navigatore. La coppia non può discutere ogni piccola decisione. Il guidatore si deve occupare di fare bene quello che gli viene detto dal navigatore. L&#8217;obiettivo è la risoluzione del problema. Se il guidatore non è d&#8217;accordo con il design emerso potrà fare refactoring quando sarà lui il navigatore, se necessario.</li>
<li><strong> Il guidatore deve stare attento alla tattica</strong>.<br />
Il compito del guidatore è quello di porre attenzione a quello che gli viene detto dal navigatore e al coding style.</li>
<li><strong> Il navigatore deve stare attento alla strategia.</strong><br />
Il compito del navigatore è quello di indicare la strada al guidatore. Il navigatore deve guardare più avanti e scegliere quale strategie attuare. E&#8217; il navigatore che fa emergere il design del codice.</li>
<li><strong>Per discutere si chiama un Time-Out</strong>.<br />
Durante la sessione di Pair Programming, se la coppia è in disaccordo, si possono chiamare dei Time-Out. I time out servono a discutere insieme quale strada percorrere e come risolvere un certo problema, o per chiedere aiuto a qualcuno se si è bloccati. Il numero massimo di time out che si possono chiamare durante una giornata non dovrebbero essere più di quattro. La durata di un Time-Out non deve essere superiore al pomodoro.</li>
<li><strong> Cambiarsi i ruoli</strong>.<br />
E&#8217; molto importante che nella coppia i ruoli vengano scambiati frequentemente. Un tempo ideale potrebbe essere ogni uno o due pomodori.</li>
</ol>
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;"><strong><span style="font-weight: normal;">Nel dojo che organizzeremo in ideato, vedremo come rendere ancora più efficace il Pair Programming attravero il <a href="http://www.c2.com/cgi/wiki?PairProgrammingPingPongPattern">Ping Pong Pair Programming</a>. </span></strong></p>
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;"><strong><span style="font-weight: normal;">E tu ti fidi del tuo navigatore?</span></strong></p>
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;">
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/cphp?a=_ZYaWsSG0Kg:rgBPWpKt6eE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/cphp?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=_ZYaWsSG0Kg:rgBPWpKt6eE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/cphp?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=_ZYaWsSG0Kg:rgBPWpKt6eE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/cphp?i=_ZYaWsSG0Kg:rgBPWpKt6eE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=_ZYaWsSG0Kg:rgBPWpKt6eE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/cphp?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/cphp/~4/_ZYaWsSG0Kg" height="1" width="1"/>]]></content:encoded><description>Qualche settimana fa, una coppia di sviluppatori del team nel quale lavoro, mi ha chiesto: &amp;#8220;Ciccio, ma quali sono le regole del Pair Programming? Facciamo Pair Programming da alcuni mesi, ma a volte non ci sentiamo molto efficaci, perchè discutiamo troppo nel prendere decisioni condivise e perchè il nostro livello di conoscenza non è lo [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.francescotrucchia.it/2010/01/12/alcune-regole-del-pair-programming/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">3</slash:comments><feedburner:origLink>http://www.francescotrucchia.it/2010/01/12/alcune-regole-del-pair-programming/</feedburner:origLink></item><item><title>Per progetti software non ci vuole un team grande ma un grande team!!</title><link>http://feedproxy.google.com/~r/cphp/~3/3LWjpTBJubk/</link><category>Di tutto un po'...</category><category>2010</category><category>agile</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">cphp</dc:creator><pubDate>Thu, 31 Dec 2009 10:30:20 PST</pubDate><guid isPermaLink="false">http://www.cphp.it/?p=307</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Come citava la pubblicità dei pennelli cinghiali, &#8220;<em>Per fare una grande parete, non ci vuole un pennello grande, ma un grande pennello</em>&#8220;, ritengo che lo stesso slogan possa essere applicato oggi alle aziende che producono software. Si pensa che grandi team e aziende fortemente strutturate possano creare software migliori e in tempi brevi.</p>
<p><strong><a href="http://spectrum.ieee.org/computing/software/why-software-fails">Beh questa è utopia</a></strong>.</p>
<p>Il software è fatto dalle menti delle persone: chiamale grafico, ingegnere, architetto, db specialist o semplicemente programmatore, ma quello che conta realmente non è l&#8217;etichetta ma la loro creatività.</p>
<p>Per fare un grande software bastano poche persone, eccellenti nella loro professione, fortemente motivate, coraggiose, curiose e in grado di comunicare tra loro. Sono questi alcuni degli ingredienti fondamentali di una <a href="http://www.manifestoagile.it/">ricetta che non può sbagliare</a>.</p>
<p>Dall&#8217;altra parte nel team non può mancare il committente, colui che ha richiesto il software, sia esso un imprenditore, un utente, un product manager, un business analyst. Per fare un grande software ne basta anche solo uno, ma che ci sia, che sia anche lui farcito degli stessi ingredienti di professionalità, motivazione, coraggio, curiosità, capacità di comunicazione e soprattutto disponibilità.</p>
<p>Con queste due caratteristiche non avremo mai un software grande, pieno di bug che non fa quello che abbiamo chiesto, ma un grande software, fatto dagli utenti per gli utenti, un software pronto a cambiare quando richiesto, in grado di compiere i task per i quali è stato creato.</p>
<p>Come possiamo raggiungere questo obiettivo in un mondo di speculazione e fanta finanza&#8230; sinceramente non lo so, ma credo che un&#8217;eccellenza di professionisti e aziende italiane che in questo 2009 ho incontrato stiano iniziando a muoversi verso un mondo più sostenibile, più razionale e più vero, dove i vincitori sono sempre due, sia il cliente che il fornitore, per farlo stanno abbracciando <a href="http://it.wikipedia.org/wiki/Metodologia_agile">la filosofia delle metodologie agili</a>.</p>
<p>Questo è quello che il 2009 mi ha lasciato a livello professionale, questo è il progetto per il quale voglio impegnarmi nei prossimi anni.</p>
<p>Voglio regalare alle persone e alle loro aziende che mi hanno fatto crescere in questo 2009 un link alla loro professionalità. Ringrazio di cuore:</p>
<ul>
<li>Kea, Michele, Paolo, Fullo, Anto, Filo di <a href="http://www.ideato.it">ideato</a></li>
<li>Antonio, Giorgio e Alessio di <a href="http://www.digitalnatives.it/">Digital Natives</a></li>
<li>Alberto, Gianfilippo e Cristiano di <a href="http://www.doralab.it/">Doralab</a></li>
<li>Luca, Diana ed Alice di <a href="http://www.sketchin.ch/">Sketchin</a></li>
<li>Michele e Lorenzo di <a href="http://www.e-xtrategy.net/">e-xtrategy</a></li>
<li>il mio caro mentore <a href="http://www.sviluppoagile.it/">Jacopo</a></li>
</ul>
<p>Buon 2010.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/cphp?a=3LWjpTBJubk:zhuXz8DAwn4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/cphp?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=3LWjpTBJubk:zhuXz8DAwn4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/cphp?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=3LWjpTBJubk:zhuXz8DAwn4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/cphp?i=3LWjpTBJubk:zhuXz8DAwn4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/cphp?a=3LWjpTBJubk:zhuXz8DAwn4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/cphp?d=dnMXMwOfBR0" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/cphp/~4/3LWjpTBJubk" height="1" width="1"/>]]></content:encoded><description>Come citava la pubblicità dei pennelli cinghiali, &amp;#8220;Per fare una grande parete, non ci vuole un pennello grande, ma un grande pennello&amp;#8220;, ritengo che lo stesso slogan possa essere applicato oggi alle aziende che producono software. Si pensa che grandi team e aziende fortemente strutturate possano creare software migliori e in tempi brevi. Beh questa [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.francescotrucchia.it/2009/12/31/per-progetti-software-non-ci-vuole-un-team-grande-ma-un-grande-team/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">3</slash:comments><feedburner:origLink>http://www.francescotrucchia.it/2009/12/31/per-progetti-software-non-ci-vuole-un-team-grande-ma-un-grande-team/</feedburner:origLink></item></channel></rss>

