<?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>Pignatelli.com - programmazione e social media marketing &#187; Articoli</title>
	<atom:link href="http://www.pignatelli.com/category/articolo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pignatelli.com</link>
	<description>Notizie e informazioni su programmazione e social media marketing</description>
	<lastBuildDate>Sun, 03 Oct 2010 15:04:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>OpenWorldForum 2010 &#8211; Parigi: Open Source e Open Innovation</title>
		<link>http://www.pignatelli.com/2010/10/03/openworldforum-2010-parigi-open-source-e-open-innovation/</link>
		<comments>http://www.pignatelli.com/2010/10/03/openworldforum-2010-parigi-open-source-e-open-innovation/#comments</comments>
		<pubDate>Sun, 03 Oct 2010 15:02:30 +0000</pubDate>
		<dc:creator>Nicola</dc:creator>
				<category><![CDATA[Innovation]]></category>
		<category><![CDATA[Open]]></category>
		<category><![CDATA[Social Network]]></category>
		<category><![CDATA[Social media]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[open innovation]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.pignatelli.com/?p=758</guid>
		<description><![CDATA[<br/>Si è chiusa venerdì la due giorni dell&#8217;Open World Forum, dedicata all&#8217;Open Innovation e all&#8217;Open Source.
La prima impressione è stata ottima, organizzazione impeccabile, per non parlare del breakfast e del lunch (di cui potete ammirare gli splendidi dolcetti sul mio profilo Facebook).
Una cosa che mi ha colpito particolarmente è stata una frase di Marylene Delbourg-Delphis, [...]]]></description>
			<content:encoded><![CDATA[<br/><p><img class="alignleft" title="OpenWorldForum 2010 - Open source e Open Innovation " src="http://www.openworldforum.org/common/images/logo.png" alt="" width="115" height="126" />Si è chiusa venerdì la due giorni dell&#8217;Open World Forum, dedicata all&#8217;Open Innovation e all&#8217;Open Source.</p>
<p>La prima impressione è stata ottima, organizzazione impeccabile, per non parlare del breakfast e del lunch (di cui potete ammirare gli splendidi dolcetti sul <a title="Nicola Pignatelli - profilo facebook" href="http://www.facebook.com/npignatelli" target="_blank">mio profilo Facebook</a>).</p>
<p>Una cosa che mi ha colpito particolarmente è stata una frase di <a title="Marylene Delbourg-Delphis" href="http://www.openworldforum.org/attend/speakers/marylene-delbourg-delphis" target="_blank">Marylene Delbourg-Delphis</a>, nella discussione inerente l&#8217;Open Generation, la cui nascita è da far risalire alla creazione e utilizzo massivo del TCP/IP, infatti a pensarci bene senza questo protocollo nulla sarebbe come è ora, saremmo ancora sulla Torre di Babele delle trasmissioni con mezzi proprietari.</p>
<p>Il prossimo passo in questa direzione sono i Social Network, con tutte le problematiche di privacy che ne conseguono.</p>
<p>In generale, l&#8217;idea che è emersa da questa due giorni è che ormai la strada intrapresa è quella dell&#8217;OPEN, inteso non solo come codice, ma come un modo di vivere, pensare ed essere:</p>
<ul>
<li>Usare codice aperto per il pieno controllo del proprio business;</li>
<li>Vivere open per confrontarsi con l&#8217;innovazione e non rimanere ancorati al passato;</li>
<li>Pensare Open  per mettere sempre in dubbio  le proprie certezze ed essere sempre in grado  di elaborare la soluzione migliore, senza preconcetti;</li>
<li>Essere Open anche per non temere ciò che non si conosce, essere aperti a qualunque cultura e società, in quanto tutto concorre ad ampliare e rafforzare le proprie conoscenze e certezze.</li>
</ul>
<p>Credo che in quest&#8217;elenco ci sia il sunto di tutto ciòc he questo Forum ha voluto insegnarci e fare nostro, in modo che possiamo capire e comprendere le evoluzioni della Società mondiale dove viviamo.</p>
<p>Per chi volesse vedere cosa è stato detto e chi ha partecipato alla due giorni il sito è il seguente: <a title="Open World Forum 2010" href="http://www.openworldforum.org/" target="_blank">http://www.openworldforum.org/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pignatelli.com/2010/10/03/openworldforum-2010-parigi-open-source-e-open-innovation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Un nuovo modo di comunicare l&#8217;immagine dell&#8217;azienda</title>
		<link>http://www.pignatelli.com/2010/08/06/un-nuovo-modo-di-comunicare-limmagine-dellazienda/</link>
		<comments>http://www.pignatelli.com/2010/08/06/un-nuovo-modo-di-comunicare-limmagine-dellazienda/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 09:31:01 +0000</pubDate>
		<dc:creator>Nicola</dc:creator>
				<category><![CDATA[Azienda]]></category>
		<category><![CDATA[Social Network]]></category>
		<category><![CDATA[Social media]]></category>

		<guid isPermaLink="false">http://www.pignatelli.com/?p=730</guid>
		<description><![CDATA[<br/>
 

 
I nuovi media, in particolare quelli sociali, stanno cambiando il  modo di  interagire delle aziende nei confronti dei potenziali  acquirenti, e più in generale dell&#8217;opinione pubblica. 

Il vecchio concetto di comunicazione  aziendale presupponeva che il  brand fosse gestito interamente dalla Casa, ed il soggetto finale era solo un [...]]]></description>
			<content:encoded><![CDATA[<br/><div>
<p><span style="font-size: medium;"> </span></p>
<p style="text-align: justify;"><img class="size-full wp-image-731 alignleft" title="Interazione e socializzazione con i nuovi media" src="http://www.pignatelli.com/wp-content/uploads/2010/07/chrysalis_logo.jpg" alt="Social media" width="95" height="63" /></p>
<p style="text-align: justify;"><span style="font-size: medium;"> </span></p>
<p style="text-align: justify;"><span style="font-size: small;">I nuovi media, in particolare quelli sociali, stanno cambiando il  modo di  interagire delle aziende nei confronti dei potenziali  acquirenti, e più in generale dell&#8217;opinione pubblica. </span></p>
<p style="text-align: justify;"><span style="font-size: small;"><br class="spacer_" /></span></p>
<p style="text-align: justify;"><span style="font-size: small;">Il vecchio concetto di comunicazione  aziendale presupponeva che il  brand fosse gestito interamente dalla Casa, ed il soggetto finale era solo un recettore delle idee prodotte  dalle agenzie di comunicazione, a cui era stato affidato il mandato di  creare una campagna pubblicitaria per l&#8217;azienda. </span></p>
<p style="text-align: justify;"><span style="font-size: small;">Il cliente assimilava  passivamente  il messaggio trasmesso dai media tradizionali (radio, giornali o  televisione), e non aveva possibilità d&#8217;interagire o comunicare  con il produttore stesso.</span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span id="more-730"></span><br />
</span></p>
<p style="text-align: justify;"><span style="font-size: small;">Tutto questo è stato sostituito  da  una comunicazione dove il brand ascolta e interagisce, sia nella fase  precedente che in quella seguente il lancio della campagna pubblicitaria  e del messaggio, spesso modificando in corso d&#8217;opera la propria linea  in base ai feedback ricevuti dalla comunità  con cui si interfaccia.</span></p>
<p style="text-align: justify;"><span style="font-size: small;">Un&#8217;azienda, di qualunque  dimensione, non può pensare di ragionare da piccolo  bottegaio (con tutto il rispetto per il pizzicagnolo), perchè ogni passo  che compie sarà filtrato dalla lente d&#8217;ingrandimento dei lettori  della Grande Rete, intesa come Internet, producendo effetti  imprevedibili, a volte anche negativi.</span></p>
<div style="text-align: justify;"><span style="font-size: small;">Tramite i  social media i  consumatori sono competenti, informati, vogliono  relazionarsi ed essere ascoltati, avere un canale preferenziale che non  sia un freddo e distante call center.</span></div>
<div style="text-align: justify;"><span style="font-size: small;"><br />
 </span></div>
<div style="text-align: justify;"><span style="font-size: small;">Le  persone devono essere viste come dei partner esterni che contribuiscono  alla crescita dei prodotti aziendali, non solo come un mercato da  inondare con le proprie creazioni in modo passivo e monodirezionale.</span></div>
<div style="text-align: justify;"><span style="font-size: small;">Tramite migliaia di blog, social network e nuove tecnologie, come i  cellulari con telecamera, queste persone forniscono anteprime, video  scoop del mercato e se si sentono soddisfatte dei prodotti si fanno  promotori attivi del brand aziendale presso la loro rete di contatti,  con un effetto a cascata, il cosidetto effetto buzz, che propaga in poco  tempo e in una miriade di settori della Società il messaggio che il  produttore voleva.</span></div>
<div style="text-align: justify;"><span style="font-size: small;">I social  media sono una grande opportunità fornita alle aziende e a chiunque  abbia un brand da sviluppare, ma l&#8217;utilizzo di certi strumenti comporta un periodo di addestramento e  conoscenza.</span></div>
<div style="text-align: justify;"><span style="font-size: small;">Non  credete a chi afferma che basta creare una pagina in Facebook e  aggiungere una serie di amici per comunicare gli eventi o prodotti che  volete sponsorizzare, questo non è social ma solo utilizzare un nuovo  strumento al posto delle classiche mailing list.</span></div>
<div style="text-align: justify;"><span style="font-size: small;">Ogni  risultato esige un duro lavoro, ed i social non lo eliminano, al massimo  ci permettono di aumentare le possibilità.</span></div>
<p><br class="spacer_" /></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.pignatelli.com/2010/08/06/un-nuovo-modo-di-comunicare-limmagine-dellazienda/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Facebook boogeyman ???????</title>
		<link>http://www.pignatelli.com/2010/05/21/facebook-boogeyman/</link>
		<comments>http://www.pignatelli.com/2010/05/21/facebook-boogeyman/#comments</comments>
		<pubDate>Fri, 21 May 2010 08:40:02 +0000</pubDate>
		<dc:creator>Nicola</dc:creator>
				<category><![CDATA[Social Network]]></category>

		<guid isPermaLink="false">http://www.pignatelli.com/?p=722</guid>
		<description><![CDATA[<br/>




Ma veramente Facebook minaccia la nostra privacy ? è il boogeyman, l&#8217;uomo nero che inquieta il nostro dolce dormire ?
Cerchiamo di essere seri per una volta. Facebook è riuscito in un tempo relativamente breve a diventare leader nel campo dei social network di tipo generalista, e questo senza acquisire posizioni dominanti o puntare una pistola [...]]]></description>
			<content:encoded><![CDATA[<br/><div class="mceTemp">
<dl id="attachment_723" class="wp-caption alignleft" style="width: 110px;">
<dt class="wp-caption-dt"><img class="size-full wp-image-723" title="facebook uomo nero ???" src="http://www.pignatelli.com/wp-content/uploads/2010/05/facebook.png" alt="facebook grande fratello ?" width="100" height="120" /></dt>
</dl>
</div>
<p style="text-align: justify;">Ma veramente Facebook minaccia la nostra privacy ? è il boogeyman, l&#8217;uomo nero che inquieta il nostro dolce dormire ?</p>
<p style="text-align: justify;">Cerchiamo di essere seri per una volta. Facebook è riuscito in un tempo relativamente breve a diventare leader nel campo dei social network di tipo generalista, e questo senza acquisire posizioni dominanti o puntare una pistola alla testa di nessuno.</p>
<p style="text-align: justify;">Tutti siamo andati nel suo spazio per vari motivi: chi per lavoro, chi per ritrovare amici oppure solo perchè fa figo o perchè &#8220;ci sono tutti e non posso mancare io&#8221;.</p>
<p style="text-align: justify;"><span id="more-722"></span></p>
<p style="text-align: justify;">Adesso ci svegliamo con un problema di privacy ? Ma quando usiamo il bancomat non siamo forse tracciabili ? Attivando il telepass non indichiamo la nostra posizione in ogni istante del nostro viaggio ? Forse che Google con tutte le nostre ricerche non acquisisce dati importanti sulle nostre abitudini ?</p>
<p style="text-align: justify;">Mi sembra che questa ennesima iniziativa sia una caccia alle streghe per generare word of mouth, buzz marketing e crearsi un pò di notorietà per questi paladini della privacy personale. Se vogliamo la privacy spegniamo i cellulari, stacchiamo il PC, insomma diventiamo dei Flinstones. altrimenti vediamo di non creare tanto rumore per nulla. Facebook è solo un mezzo utilizzabile dal singolo, è compito nostro utilizzarlo in modo corretto, non certo del suo creatore, il quale al massimo può mettere a disposizione (come poi stanno facendo) gli strumenti adatti a questo scopo.</p>
<p style="text-align: justify;">Saluti a tutti</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pignatelli.com/2010/05/21/facebook-boogeyman/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I peracottai dell&#8217;informatica</title>
		<link>http://www.pignatelli.com/2009/10/21/i-peracottai-dellinformatica/</link>
		<comments>http://www.pignatelli.com/2009/10/21/i-peracottai-dellinformatica/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 07:05:54 +0000</pubDate>
		<dc:creator>Nicola</dc:creator>
				<category><![CDATA[Lavoro]]></category>
		<category><![CDATA[annunci]]></category>
		<category><![CDATA[peracottai]]></category>

		<guid isPermaLink="false">http://www.pignatelli.com/?p=711</guid>
		<description><![CDATA[<img src="http://www.pignatelli.com/wp-content/uploads/2008/09/arrow-right-016x016.png" width="16" height="16" alt="" title="Lavoro" /><br/>Come ogni mattina mi ritrovo nella mia email gli annunci di lavoro inseriti nei soliti siti internet.
Giusto per far passare i cinque minuti del risveglio vado a vedere di cosa si tratta e fra le varie pagine mi colpiscono due inserzioni, che contengono la seguente dicitura:
Prima inserzione




Azienda leader nel settore ICT

Competenza specifica di [omissis] è [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.pignatelli.com/wp-content/uploads/2008/09/arrow-right-016x016.png" width="16" height="16" alt="" title="Lavoro" /><br/><p><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;">Come ogni mattina mi ritrovo nella mia email gli annunci di lavoro inseriti nei soliti siti internet.</span></span></p>
<p><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;">Giusto per far passare i cinque minuti del risveglio vado a vedere di cosa si tratta e fra le varie pagine mi colpiscono due inserzioni, che contengono la seguente dicitura:</span></span></p>
<p><strong><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;">Prima inserzione</span></span></strong></p>
<table style="width: 502px; height: 340px;" border="0" cellspacing="2" cellpadding="2">
<tbody>
<tr valign="top">
<td colspan="2" align="left">
<p><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;">Azienda leader nel settore ICT</span></span></p>
<p><br class="spacer_" /></p>
<p>Competenza specifica di [omissis] è quella di sviluppare prodotti software, fornire personale specializzato altamente qualificato, offrire soluzioni in outsourcing e servizi di gestione documentale.</p>
<p><br class="spacer_" /></p>
</td>
</tr>
<tr>
<td colspan="2"><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;"><strong>Titolo della posizione ricercata</strong> <strong>Sistemista Php</strong></span></span></td>
</tr>
<tr valign="top">
<td colspan="2" style="width:100%"><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;"><strong>Descrizione posizione ricercata</strong><br />
 Sistemista Php</span></span></td>
</tr>
<tr valign="top">
<td colspan="2" style="width:100%"><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;"><strong>Conoscenze                          richieste</strong><br />
 Sistemista Php</span></span></td>
</tr>
<tr valign="top">
<td style="width:40%"><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;"><strong>Luogo di                          lavoro</strong></span></span></td>
<td><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;">[omissis] </span></span></td>
</tr>
<tr>
<td style="width:40%"><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;"><strong>Tipo di contratto</strong></span></span></td>
<td><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;">[omissis] </span></span></td>
</tr>
<tr valign="top">
<td style="width:40%"><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;"><strong>Data di pubblicazione</strong></span></span></td>
<td>
<p><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;">[omissis] </span></span></p>
</td>
</tr>
</tbody>
</table>
<p><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;"> </span></span><strong><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;">Seconda inserzione</span></span></strong></p>
<p><strong><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;"><span id="more-711"></span></span></span></strong></p>
<p><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;">Ricerchiamo URGENTEMENTE programmatore PHP, Mysql, javascript da accostare all&#8217;attuale organico dell&#8217;azienda. La persona deve avere almeno 1/2 anni di esperienza presso altra web agency. Deve essere una persona dinamica e disponibile a svolgere mansioni non direttamente legate allo sviluppo di siti web. Contratto a progetto con retribuzione variabile in base all&#8217;esperienza e alle &#8220;potenzialità&#8221; di apporto all&#8217;interno del gruppo di lavoro.</span></span></p>
<p><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;">Nel primo annuncio si parla di azienda professionale, con alti profili di competenza, e poi mi scrivono che vogliono un sistemista PHP ? Da quanto il PHP è diventato un sistema operativo e non un linguaggio di programmazione ?</span></span></p>
<p><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;">Nel secondo annunciochiedono un programmatore PHP che sappia svolgere mansioni non direttamente legate allo sviluppo di siti web; cosa deve saper fare ? La partita doppia? il call center ? portare il caffè al capo ?</span></span></p>
<p><span style="font-size: small;"><span style="font-family: arial,helvetica,sans-serif;">Mi chiedo quando la crisi spazzerà via queste aziende incompetenti che nulla hanno a che fare con la professionalità dell&#8217;IT ma si avvicinano di più al commercio di ortaggi e frutta.</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pignatelli.com/2009/10/21/i-peracottai-dellinformatica/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Un saluto al Virgilio Search Team</title>
		<link>http://www.pignatelli.com/2008/12/23/un-saluto-al-virgilio-search-team/</link>
		<comments>http://www.pignatelli.com/2008/12/23/un-saluto-al-virgilio-search-team/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 10:36:30 +0000</pubDate>
		<dc:creator>Nicola</dc:creator>
				<category><![CDATA[Dal Mondo]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Amici]]></category>
		<category><![CDATA[motore di ricerca]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[Virgilio]]></category>

		<guid isPermaLink="false">http://www.pignatelli.com/?p=684</guid>
		<description><![CDATA[<img src="http://www.pignatelli.com/wp-content/uploads/2008/09/arrow-right-016x016.png" width="16" height="16" alt="" title="Dal Mondo" /><img src="http://www.pignatelli.com/wp-content/uploads/2008/09/arrow-right-016x016.png" width="16" height="16" alt="" title="Internet" /><img src="http://www.pignatelli.com/wp-content/uploads/2008/09/site-map-016x016.png" width="16" height="16" alt="" title="News" /><br/>Bene essendo ormai passato il mio ultimo giorno di consulenza presso Matrix posso dire, senza dover poi sentirmi dire grazie, che grande, ecc. che i tre anni passati dentro il gruppo della Search di Virgilio sono stati molto belli. Spesso si parla delle aziende italiane come delle entità che scimmiottano la New Economy americana, che [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.pignatelli.com/wp-content/uploads/2008/09/arrow-right-016x016.png" width="16" height="16" alt="" title="Dal Mondo" /><img src="http://www.pignatelli.com/wp-content/uploads/2008/09/arrow-right-016x016.png" width="16" height="16" alt="" title="Internet" /><img src="http://www.pignatelli.com/wp-content/uploads/2008/09/site-map-016x016.png" width="16" height="16" alt="" title="News" /><br/><p style="text-align: justify;"><a href="http://www.pignatelli.com/wp-content/uploads/2008/12/weblink_virgilio.jpg"><img class="alignleft size-medium wp-image-685" style="padding-right: 5pt;" title="Virgilio Search Team" src="http://www.pignatelli.com/wp-content/uploads/2008/12/weblink_virgilio-300x180.jpg" alt="" width="189" height="113" /></a><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Bene essendo ormai passato il mio ultimo giorno di consulenza presso Matrix posso dire, senza dover poi sentirmi dire grazie, che grande, ecc. che i tre anni passati dentro il gruppo della Search di Virgilio sono stati molto belli. Spesso si parla delle aziende italiane come delle entità che scimmiottano la New Economy americana, che sono pronte a copiare tutto ma non sanno creare nulla.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Vi invito a guardare come è cambiata l&#8217;interfaccia del motore di ricerca Virgilio nell&#8217;ultimo anno. Tutto questo è frutto del lavoro di ragazzi in gamba, che pur con i loro difetti, hanno dei pregi e una passione per i loro compiti che ho riscontrato in pochissime persone lungo lo Stivale.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Mi piacerebbe fare i loro nomi, ma la privacy  me lo impedisce, inoltre non vorrei che un giorno per colpa mia  le loro email fossero tempestate di domande assurde o inutili.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Vi dico che se gli parlate scoprirete che sono persone normali, non se la tirano e sono sempre disponibili a dare una mano nell&#8217;ambito tecnologico a chi lo chiede.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Alcuni di loro hanno dei blog, ma non sta a me svelarne gli url, altri non li hanno perchè così indaffarati che non riescono a crearlo; altri ancora sono troppo intenti a raffinare le tecniche SEO sui blog precedenti.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Beh un saluto a tutta la Search, ed anche al super Capo, che nonostante il grado che ricopra è una persona sempre disponibile e che non disdegna momenti di ilarità con i suoi sottoposti.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Bye bye</span></p>
<p style="text-align: justify;"> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.pignatelli.com/2008/12/23/un-saluto-al-virgilio-search-team/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Refactoring &#8211; Lez. 4: Estrazione di codice e eliminazione di variabili temporanee</title>
		<link>http://www.pignatelli.com/2008/12/05/php-refactoring-lez-4-estrazione-di-codice-e-eliminazione-di-variabili-temporanee/</link>
		<comments>http://www.pignatelli.com/2008/12/05/php-refactoring-lez-4-estrazione-di-codice-e-eliminazione-di-variabili-temporanee/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 10:03:26 +0000</pubDate>
		<dc:creator>Nicola</dc:creator>
				<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://www.pignatelli.com/?p=651</guid>
		<description><![CDATA[<img src="http://www.pignatelli.com/wp-content/uploads/2008/09/arrow-right-016x016.png" width="16" height="16" alt="" title="Refactoring" /><br/>Spesso nei metodi di una classe troviamo del codice che può essere riutilizzato in vari punti della stessa, oppure notiamo che messe in quella posizione non danno alcun significato intuitivo.
Un miglioramento della leggibilità dell&#8217;oggetto è estrarre questo gruppo di righe con un significato comune e metterle in un metodo che sarà richiamato ogni volta che [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.pignatelli.com/wp-content/uploads/2008/09/arrow-right-016x016.png" width="16" height="16" alt="" title="Refactoring" /><br/><p style="text-align: justify;"><a href="http://www.pignatelli.com/wp-content/uploads/2008/12/php-logo.png"><img class="size-medium wp-image-657 alignleft" style="padding-right: 5pt;" title="php-logo" src="http://www.pignatelli.com/wp-content/uploads/2008/12/php-logo.png" alt="" width="157" height="82" /></a><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Spesso nei metodi di una classe troviamo del codice che può essere riutilizzato in vari punti della stessa, oppure notiamo che messe in quella posizione non danno alcun significato intuitivo.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Un miglioramento della leggibilità dell&#8217;oggetto è estrarre questo gruppo di righe con un significato comune e metterle in un metodo che sarà richiamato ogni volta che si presenterà la necessità.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Un altro problema è la presenza di variabili temporanee, che non fanno altro che aumentare i rischi di bug e possono essere sostituite da codice autoesplicativo, nella forma di un metodo privato della classe.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Di seguito è fornito un esempio per meglio chiarire il concetto:</span></p>
<p style="text-align: justify;"><span id="more-651"></span></p>
<table style="background-color: #000000;" border="0" cellspacing="1" cellpadding="4">
<tbody>
<tr>
<td style="background-color: #FFEEE6;"><span style="font-size: small; font-family: courier new,courier;">Errato</span></td>
</tr>
<tr>
<td style="background-color: #ffffff;" valign="top">
<p><span style="font-size: small; font-family: courier new,courier;">class Conto {</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">public function liquidita() {</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">$interessi = 0,025;</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<br />
 </span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">$totaleCredito = </span><span style="font-size: small; font-family: courier new,courier;">$this-&gt;db-&gt;getRow(1);</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">$creditoDisponibile = $interessi * </span><span style="font-size: small; font-family: courier new,courier;">$totaleCredito;</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">return </span><span style="font-size: small; font-family: courier new,courier;">$creditoDisponibile;</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p><span style="font-size: small; font-family: courier new,courier;">}</span></p>
</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"> </p>
<table style="background-color: #000000; height: 530px;" border="0" cellspacing="1" cellpadding="4" width="472">
<tbody>
<tr>
<td style="background-color: #FFEEE6;"><span style="font-size: small; font-family: courier new,courier;">Esatto</span></td>
</tr>
<tr>
<td style="background-color: #ffffff;" valign="top">
<p><span style="font-size: small; font-family: courier new,courier;">class Conto {</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">private $interessi;<br />
 </span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">public function __construct(</span><span style="font-size: small; font-family: courier new,courier;">$interessi</span><span style="font-size: small; font-family: courier new,courier;">) {</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">$this-&gt;setInteressi(</span><span style="font-size: small; font-family: courier new,courier;">$interessi</span><span style="font-size: small; font-family: courier new,courier;">); </span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">public function </span><span style="font-size: small; font-family: courier new,courier;">setInteressi(</span><span style="font-size: small; font-family: courier new,courier;">$interessi</span><span style="font-size: small; font-family: courier new,courier;">) { </span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">$this-&gt;interessi = </span><span style="font-size: small; font-family: courier new,courier;">$interessi</span><span style="font-size: small; font-family: courier new,courier;">;</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">public function </span><span style="font-size: small; font-family: courier new,courier;">getInteressi(</span><span style="font-size: small; font-family: courier new,courier;">) { </span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">return $this-&gt;interessi</span><span style="font-size: small; font-family: courier new,courier;">;</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">public function liquidita() {</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">return </span><span style="font-size: small; font-family: courier new,courier;">$this-&gt;</span><span style="font-size: small; font-family: courier new,courier;">totaleCredito() *</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">$this-&gt;</span><span style="font-size: small; font-family: courier new,courier;">getInteressi(</span><span style="font-size: small; font-family: courier new,courier;">)</span><span style="font-size: small; font-family: courier new,courier;">;</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">private function totaleCredito() {</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">return </span><span style="font-size: small; font-family: courier new,courier;">$this-&gt;db-&gt;getRow(1);</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p><span style="font-size: small; font-family: courier new,courier;">}</span></p>
</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Come potete vedere dall&#8217;esempio precedente siamo passati da un metodo con un&#8217;accozzaglia di variabili temporanee, dfra cui una contenente una costante, ad un insieme di semplici metodi autoesplicativi e richiamabili in più punti.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Come esempio può sembrare banale, ma applicato ad un programma complesso vi permette di risolvere ed eliminare molte fonti di bug.</span></p>
<p><br class="spacer_" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pignatelli.com/2008/12/05/php-refactoring-lez-4-estrazione-di-codice-e-eliminazione-di-variabili-temporanee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ma il body rental nell&#8217;IT conviene veramente ?</title>
		<link>http://www.pignatelli.com/2008/11/27/ma-il-body-rental-nellit-conviene-veramente/</link>
		<comments>http://www.pignatelli.com/2008/11/27/ma-il-body-rental-nellit-conviene-veramente/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 14:33:42 +0000</pubDate>
		<dc:creator>Nicola</dc:creator>
				<category><![CDATA[Lavoro]]></category>
		<category><![CDATA[body rental]]></category>
		<category><![CDATA[programmazione]]></category>

		<guid isPermaLink="false">http://www.pignatelli.com/?p=626</guid>
		<description><![CDATA[<img src="http://www.pignatelli.com/wp-content/uploads/2008/09/arrow-right-016x016.png" width="16" height="16" alt="" title="Lavoro" /><br/>Si parla tanto di risparmio e contenimento dei costi, ma proviamo a pensare a quest&#8217;argomento senza preconcetti e con obiettività.
Ritorno economico immediato
Tramite il body rental un&#8217;azienda ha un ritorno economico immediato del proprio investimento; paghi uno stipendio ma il costo è ammortizzato tramite il cliente che prende presso la propria sede il programmatore, e rimane [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.pignatelli.com/wp-content/uploads/2008/09/arrow-right-016x016.png" width="16" height="16" alt="" title="Lavoro" /><br/><p style="text-align: justify;"><a href="http://www.vitadiunsysadmin.net/wp-content/uploads/2006/10/perfect_work.jpg" target="_blank"><img class="alignleft" style="border: 0pt none; padding-right: 10pt;" title="Body rental nellIT" src="http://www.vitadiunsysadmin.net/wp-content/uploads/2006/10/perfect_work.jpg" alt="" width="134" height="175" /></a><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Si parla tanto di risparmio e contenimento dei costi, ma proviamo a pensare a quest&#8217;argomento senza preconcetti e con obiettività.</span></p>
<p style="text-align: justify;"><strong><span style="font-size: medium; font-family: arial,helvetica,sans-serif;">Ritorno economico immediato</span></strong></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Tramite il body rental un&#8217;azienda ha un ritorno economico immediato del proprio investimento; paghi uno stipendio ma il costo è ammortizzato tramite il cliente che prende presso la propria sede il programmatore, e rimane anche un ricavo che finisce nelle casse della società. </span></p>
<p style="text-align: justify;"><span id="more-626"></span><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Questo, in una visione a breve, può portare ad un bilancio in attivo, ma nel lungo periodo si verifica un depauperamento del patrimonio aziendale nella creazione prodotti, portando lo spazio di movimento lavorativo in un&#8217;arena dove vince chi rilancia la tariffa oraria più bassa, con un rischio concreto di perdita della clientela.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Se invece si creano prodotti avremo, a fronte di un rischio immediato, una possibilità di crescita del parco clienti fidelizzati, che non potranno staccarsi dalla software house perchè l&#8217;applicativo non è stato sviluppato in loco ma presso il fornitore, non permettendo quindi al cliente di avere una conoscenza approfondita dei processi e dei sistemi sottostanti. La singola risorsa non sarà il detentore unico della conoscenza del prodotto da proporre alla clientela, quindi non si rischieranno situazioni, troppo spesso viste, in cui i clienti assumono il consulente per necessità e perchè ormai si trova in loco da anni, lasciando il fornitore senza più un afflusso mensile di capitale proveniente dal body rental.</span></p>
<p style="text-align: justify;"><strong><span style="font-size: medium; font-family: arial,helvetica,sans-serif;">Crisi del mercato IT</span></strong></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Durante una crisi del mercato dei prodotti dell&#8217;Information Technology bisogna fare in modo che il gruppo di lavoro sia coeso, si senta in grado di superare la situazione determinatasi. Scegliendo la strada del body-rental si decide di circondarsi di persone a cui si infonde l&#8217;impressione di essere &#8220;quarti di bue&#8221; da spostare a seconda delle necessità, e a persone così gestite non si può chiedere di fare quadrato in un momento di difficoltà aziendale, perchè saranno i primi ad abbandonare la baracca.</span></p>
<p style="text-align: justify;"><span style="font-size: medium;"><strong><span style="font-family: arial,helvetica,sans-serif;">Crescita e consolidamento aziendale </span></strong></span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">L&#8217;obiettivo di qualunque azienda è una crescita continua del fatturato; per permettere questo bisogna aumentare le quote di mercato. Ma dopo un certo livello di espansione bisogna anche consolidare la propria struttura interna. </span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Tramite il body rental non si costruisce nulla che assomigli anche lontanamente ad una struttura aziendale: si hanno uno o due generali, i proprietari/referenti, ed un&#8217;esercito di soldati sottopagati (già perchè con i vari passaggi di fornitori si perdono quote retributive altrimenti impiegabili per i costi mensili dei dipendenti), male equipaggiati (non c&#8217;è formazione), e pronti a tradire per una campagna più remunerativa.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Avete mai sentito che si sia vinta una battaglia, o anche una guerra, da parte di armate brancaleone? Sono pronto ad offrirvi una birra se trovate un caso. Certo questi sono in doppio petto, ma sempre armate di ventura al soldo di chi paga sono, e come tali non potranno chiedere la fedeltà del loro piccolo esercito. </span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Organizzando invece la struttura, i cambiamenti saranno meglio assorbiti e l&#8217;identità in &#8220;battaglia&#8221; più forte.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Mi sembra già di sentire i soloni del marketing ed i manager di progetto dirmi che mi sbaglio, che il mercato lo chiede, che non posso capire dalla mia posizione di programmatore; beh vorrei rispondere che:</span></p>
<ol>
<li><span style="font-size: small; font-family: arial,helvetica,sans-serif;">tutti questi &#8220;miseri&#8221; programmatori avevano già capito la truffa Mondiale dei subprime quando ci si diceva che non eravamo abbastanza esperti da comprendere i meccanismi del mercato globale;</span></li>
<li><span style="font-size: small; font-family: arial,helvetica,sans-serif;">noi avevamo capito il trucco della copertura dell&#8217;erosione delle retribuzioni con il gioco del prestito al consumo;</span></li>
<li><span style="font-size: small; font-family: arial,helvetica,sans-serif;">non ci vuole uno mago per capire le dinamiche per far prosperare un&#8217;azienda e renderla sana tramite un consolidamento progressivo, semplicemente si dedica del tempo a leggere libri e articoli di settore.</span></li>
</ol>
<p><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Quindi non venite a farmi la predica non avete l&#8217;autorità e neppure la competenza cari i miei yes man asserviti al sistema per farvi dissetare quotidianamente tramite le sue fonti.</span></p>
<p><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Se invece si vuole discutere nel merito civilmente e senza partire da una posizione ideologica son o qui per tutti voi.</span></p>
<p><br class="spacer_" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pignatelli.com/2008/11/27/ma-il-body-rental-nellit-conviene-veramente/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Certificazioni Java</title>
		<link>http://www.pignatelli.com/2008/11/19/certificazioni-java/</link>
		<comments>http://www.pignatelli.com/2008/11/19/certificazioni-java/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 08:17:21 +0000</pubDate>
		<dc:creator>Nicola</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[certificazioni]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programmazione]]></category>

		<guid isPermaLink="false">http://www.pignatelli.com/?p=579</guid>
		<description><![CDATA[<br/>Come programmatori arriva il momento di consolidare le proprie conoscenze riguardanti i linguaggi, processi o applicativi.
In questo articolo vi introdurrò ai percorsi di certificazioni Java, partendo da come diventare programmatore java fino ad arrivare alla qualifica di Enterprise Architect.
Non è un percorso facile, bisogna studiare a fondo gli argomenti ed avere  una certa padronanza del [...]]]></description>
			<content:encoded><![CDATA[<br/><p style="text-align: justify;"><a href="http://www.pignatelli.com/wp-content/uploads/2008/11/java_logo.jpg"><img class="alignleft size-medium wp-image-580" style="padding-right: 5pt;" title="certificazioni Java" src="http://www.pignatelli.com/wp-content/uploads/2008/11/java_logo.jpg" alt="" width="150" height="150" /></a><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Come programmatori arriva il momento di consolidare le proprie conoscenze riguardanti i linguaggi, processi o applicativi.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">In questo articolo vi introdurrò ai percorsi di certificazioni Java, partendo da come diventare programmatore java fino ad arrivare alla qualifica di </span><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Enterprise </span><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Architect.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Non è un percorso facile, bisogna studiare a fondo gli argomenti ed avere  una certa padronanza del linguaggio, meglio se si sono già affrontati progetti reali, in modo da poter assimilare più velocemente i concetti.</span></p>
<p style="text-align: justify;"><span id="more-579"></span><span style="font-size: small; font-family: arial,helvetica,sans-serif;">La fonte ufficiale da cui trarre informazioni dettagliate la potete trovare al seguente <a title="Java certification" href="http://www.sun.com/training/certification/java/index.xml" target="_blank">link</a>.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Nell&#8217;immagine sottostante potete vedere i percorsi di certificazione e gli esami da superare per completare ciascun percorso:</span></p>
<p style="text-align: center;"><img class="aligncenter" title="percorso di certificazione Java" src="http://www.sun.com/training/images/certpathJava.gif" alt="" width="600" height="192" /></p>
<p style="text-align: justify;"><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;"><br />
 <span style="font-size: medium;">Sun Certified Java Associated</span></span></strong></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Questa certificazione è utile a project manager o figure simili per validare le proprie conoscenze riguardanti i concetti alla base del mondo Java, dell&#8217;Object Oriented e le tecnologie SUN.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Per ottenerla basta superare un esame.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Costo dell&#8217;esame: <strong>$ 300</strong>.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Codice esame: <strong>CX-310-019</strong>.</span></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;"><span style="font-size: medium;">Sun Certified Java Programmer</span></span></strong></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Questa certificazione è il primo tassello nel percorso di formazione di SUN.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Conseguendo la SCJP consoliderete a livello internazionale le vostre conoscenze dei fondamenti del linguaggio.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Per ottenerla basta superare un esame. Senza la SCJP non si possono sostenere gli esami di livello superiore.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Il costo e codice dell&#8217;esame può essere dedotto dalla seguente tabella:</span></p>
<table style="border: 0pt solid #000000; background-color: #000000; height: 131px;" border="0" cellspacing="1" cellpadding="3" width="400" align="center">
<tbody>
<tr style="background-color: #dcd6fe;">
<td style="text-align: center;"><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Esame</span></strong></td>
<td style="text-align: center;"><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Prezzo</span></strong></td>
<td style="text-align: center;"><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Codice</span></strong></td>
</tr>
<tr style="background-color: #ffffff;">
<td><span style="font-size: small; font-family: arial,helvetica,sans-serif;">SCJP, Standard Edition 6 </span></td>
<td><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">$ 300</span></strong></td>
<td><span style="font-size: small; font-family: arial,helvetica,sans-serif;"> <strong>CX-310-065</strong></span></td>
</tr>
<tr style="background-color: #ffffff;">
<td><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Upgrade Exam: SCJP, Standard Edition 6 </span></td>
<td><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">$ 300</span></strong></td>
<td style="text-align: center;"><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;"> CX-310-066</span></strong></td>
</tr>
<tr style="background-color: #ffffff;">
<td><span style="font-size: small; font-family: arial,helvetica,sans-serif;">SCJP, Standard Edition 5.0 </span></td>
<td><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">$ 300</span></strong></td>
<td><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;"> CX-310-055</span></strong></td>
</tr>
<tr style="background-color: #ffffff;">
<td><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Upgrade Exam: SCJP, Standard Edition 5.0 </span></td>
<td><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">$ 300</span></strong></td>
<td><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;"> CX-310-056</span></strong></td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Ci sono quattro possibilità a seconda che vogliate affrontare la versione 6 o 5 di java, e nel caso differenzia a seconda che sia solo un upgrade ad una versione precedente della certificazione o vogliate sostenerla da zero.</span></p>
<p style="text-align: justify;"><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;"><br />
 <span style="font-size: medium;">Sun Certified Java Developer</span></span></strong></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Per sostenere questa certificazione bisogna aver già superato la SCJP, Sun Java Certified Programmer.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Conseguendo la SCJD consoliderete a livello internazionale la vostra professionalità nell&#8217;utilizzare Java Standard Edition</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">L&#8217;esame è diviso in due parti: nella prima parte dovrete scaricare dal sito ufficiale della SUN un progetto da sviluppare privatamente. Una volta completato (il tempo di realizzazione concesso si aggira intorno all&#8217;anno solare), dovete inviare la vostra creazione, e se sarà valutata positivamente potrete sostenere la seconda parte pratica dell&#8217;esame.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Il costo e codice dell&#8217;esame può essere dedotto dalla seguente tabella:</span></p>
<table style="border: 0pt solid #000000; background-color: #000000; height: 127px;" border="0" cellspacing="1" cellpadding="3" width="400" align="center">
<tbody>
<tr style="background-color: #dcd6fe;">
<td style="text-align: center;"><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Esame</span></strong></td>
<td style="text-align: center;"><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Prezzo</span></strong></td>
<td style="text-align: center;"><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Codice</span></strong></td>
</tr>
<tr style="background-color: #ffffff;">
<td><span style="font-size: small; font-family: arial,helvetica,sans-serif;">SCJD, S. Edition: assegnazione progetto </span></td>
<td><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">$ 375</span></strong></td>
<td><span style="font-size: small; font-family: arial,helvetica,sans-serif;"> <strong>CX-310-252A</strong></span></td>
</tr>
<tr style="background-color: #ffffff;">
<td><span style="font-size: small; font-family: arial,helvetica,sans-serif;">SCJD S. Edition: esame </span></td>
<td><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">$ 200</span></strong></td>
<td><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;"> CX-310-027</span></strong></td>
</tr>
<tr style="background-color: #ffffff;">
<td><span style="font-size: small; font-family: arial,helvetica,sans-serif;">SCJD, S. Edition: nuovo invio progetto </span></td>
<td><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">$ 200</span></strong></td>
<td><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;"> CX-310-252R</span></strong></td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Nel caso non si passi la parte di progetto si può eseguire un nuovo invio, secondo le modalità previste da SUN.</span></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><span style="font-size: medium;"><strong><span style="font-family: arial,helvetica,sans-serif;">Sun Certified Web Component Developer</span></strong></span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Con questa certificazione dimostrerete di avere le competenze necessarie per sviluppare applicazioni web tramite servlet, Java Server Pages, eccetera.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">L&#8217;ottenimento della certificazione passa dal superamento con esito positivo di un esame, e deve essere preceduto dal conseguimento della certificazione SCJP.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Il costo e codice dell&#8217;esame può essere dedotto dalla seguente tabella:</span></p>
<table style="border: 0pt solid #000000; background-color: #000000; height: 127px;" border="0" cellspacing="1" cellpadding="3" width="400" align="center">
<tbody>
<tr style="background-color: #dcd6fe;">
<td style="text-align: center;"><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Esame</span></strong></td>
<td style="text-align: center;"><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Prezzo</span></strong></td>
<td style="text-align: center;"><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Codice</span></strong></td>
</tr>
<tr style="background-color: #ffffff;">
<td><span style="font-size: small; font-family: arial,helvetica,sans-serif;">SCWCD, Java EE (Enterprise Edition) 5 </span></td>
<td><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">$ 300</span></strong></td>
<td><span style="font-size: small; font-family: arial,helvetica,sans-serif;"> <strong>CX-310-083</strong></span></td>
</tr>
<tr style="background-color: #ffffff;">
<td><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Upgrade Exam: SCWCD Java EE 5 </span></td>
<td><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">$ 300</span></strong></td>
<td><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;"> CX-310-084</span></strong></td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">L&#8217;upgrade serve nel caso abbiate una certificazione conseguita per una precedente versione di Java.</span></p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.pignatelli.com/2008/11/19/certificazioni-java/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PHP Refactoring &#8211; Lez. 3: metodi di una classe</title>
		<link>http://www.pignatelli.com/2008/11/12/php-refactoring-lez-3-metodi-di-una-classe/</link>
		<comments>http://www.pignatelli.com/2008/11/12/php-refactoring-lez-3-metodi-di-una-classe/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 11:00:01 +0000</pubDate>
		<dc:creator>Nicola</dc:creator>
				<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://www.pignatelli.com/?p=541</guid>
		<description><![CDATA[<img src="http://www.pignatelli.com/wp-content/uploads/2008/09/arrow-right-016x016.png" width="16" height="16" alt="" title="Refactoring" /><br/>Per quanto riguarda i metodi di una classe, vale anche in questo caso la naming convention esposta in precedenza per le proprietà della classe stessa. Le ripetiamo per comodità qui di seguito:
 

Se composto da singola parola tutto in minuscolo; per esempio valuta();
Se composta da più parole la prima lettera di ciascuna, a partire dalla [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.pignatelli.com/wp-content/uploads/2008/09/arrow-right-016x016.png" width="16" height="16" alt="" title="Refactoring" /><br/><p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Per quanto riguarda i metodi di una classe, vale anche in questo caso la <a title="PHP Refactoring - Lez. 1: proprietà di una classe" href="http://www.pignatelli.com/2008/10/31/php-refactoring-lez-1-proprieta-di-una-classe/">naming convention esposta in precedenza</a> per le proprietà della classe stessa. Le ripetiamo per comodità qui di seguito:<br />
 </span></p>
<ul style="text-align: justify;">
<li><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Se composto da singola parola tutto in minuscolo; per esempio valuta();</span></li>
<li><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Se composta da più parole la prima lettera di ciascuna, a partire dalla seconda, in maiuscolo, tutte le altre minuscole; per esempio aggiungiElemento();</span></li>
<li><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Il nome del metodo deve essere autoesplicativo.<br />
 </span></li>
</ul>
<p style="text-align: justify;"><span id="more-541"></span><span style="font-size: small; font-family: arial,helvetica,sans-serif;">In aggiunta a queste regole consideriamo anche le seguenti:</span></p>
<ul>
<li><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Se il nome del metodo è composto da più azioni scinderlo in tanti metodi quante sono le azioni;</span></li>
<li><span style="font-size: small; font-family: arial,helvetica,sans-serif;">La lunghezza del corpo del metodo non deve superare le 40 righe;</span></li>
<li><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Il numero dei parametri non deve superare un massimo di 4;</span></li>
</ul>
<p style="text-align: justify;"><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Nome metodo composto da più azioni</span></strong></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Mettete il caso che nello scrivere il codice di una classe abbiate un metodo con la seguente signature:</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: courier new,courier;">public function controllaImmagazzina($prodotto)</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Il codice del metodo è il seguente:</span></p>
<table style="background-color: #000000;" border="0" cellspacing="1" cellpadding="4">
<tbody>
<tr>
<td style="background-color: #ffffff;" valign="top">
<p><span style="font-size: small; font-family: courier new,courier;">class Magazzino {</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">public function controllaImmagazzina($prodotto) {</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">if ($prodotto==null) {</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">return &#8220;prodotto non settato&#8221;;</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">} else </span><span style="font-size: small; font-family: courier new,courier;">if (substr($prodotto-&gt;getCodice(), 0, 3)==&#8221;CAT&#8221;) {</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">return &#8220;prodotto con vecchia catalogazione&#8221;;</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">} else </span><span style="font-size: small; font-family: courier new,courier;">if ($prodotto-&gt;getIngombro()&gt;10) {</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">return &#8220;prodotto troppo ingombrante&#8221;;</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">$db = new Db(&#8221;mysql&#8221;);</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">$db-&gt;update($prodotto);</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;</span></p>
<p><span style="font-size: small; font-family: courier new,courier;">}</span></p>
</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">come potete vedere, abbiamo inserito in un unico metodo azioni che potrebbero tornarci utili anche singolarmente; per questo motivo dobbiamo scindere ogni azione in un nuovo metodo e nel caso ci serva utilizzarle contemporaneamente creiamo un ulteriore metodo che le richiami in sequenza.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Seguendo le indicazioni appena fornite, il codice precedente dovrebbe apparire come segue:</span></p>
<table style="background-color: #000000; text-align: justify;" border="0" cellspacing="1" cellpadding="4">
<tbody>
<tr>
<td style="background-color: #ffffff;" valign="top">
<p><span style="font-size: small; font-family: courier new,courier;">class Magazzino {</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">public function controlla($prodotto) {</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">if ($prodotto==null) {</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">return &#8220;prodotto non settato&#8221;;</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">} else </span><span style="font-size: small; font-family: courier new,courier;">if (substr($prodotto-&gt;getCodice(), 0, 3)==&#8221;CAT&#8221;) {</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">return &#8220;prodotto con vecchia catalogazione&#8221;;</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">} else </span><span style="font-size: small; font-family: courier new,courier;">if ($prodotto-&gt;getIngombro()&gt;10) {</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">return &#8220;prodotto troppo ingombrante&#8221;;</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">return &#8220;&#8221;;</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">public function immagazzina($prodotto) {</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">$db = new Db(&#8221;mysql&#8221;);</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">$db-&gt;update($prodotto);</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">public prendeInCarico($prodotto) {</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">$msg = </span><span style="font-size: small; font-family: courier new,courier;">$this-&gt;controlla($prodotto);</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">if ($msg !== &#8220;&#8221;) {</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">echo $msg</span><span style="font-size: small; font-family: courier new,courier;">;</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">} else {</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">$this-&gt;</span><span style="font-size: small; font-family: courier new,courier;">immagazzina($prodotto);</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">echo &#8220;Presa in carico andata a buon fine&#8221;; </span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">}<br />
 </span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p><br class="spacer_" /></p>
<p><span style="font-size: small; font-family: courier new,courier;">$objProdotto</span><span style="font-size: small; font-family: courier new,courier;"> = new Prodotto();</span></p>
<p><span style="font-size: small; font-family: courier new,courier;">$obj</span><span style="font-size: small; font-family: courier new,courier;">Magazzino</span><span style="font-size: small; font-family: courier new,courier;"> = new Magazzino();</span></p>
<p><span style="font-size: small; font-family: courier new,courier;">$msg = $obj</span><span style="font-size: small; font-family: courier new,courier;">Magazzino</span><span style="font-size: small; font-family: courier new,courier;">-&gt;</span><span style="font-size: small; font-family: courier new,courier;">prendeInCarico($objProdotto)</span></p>
<p><span style="font-size: small; font-family: courier new,courier;">echo $msg;</span></p>
</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Riscrivendo il codice lo abbiamo reso più leggibile e riutilizzabile, nel caso volessimo solo controllare un prodotto all&#8217;interno di un altro metodo, o solamente immagazzinare un prodotto che non necessita di controllo.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Analizziamo ora gli altri requisiti.</span></p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.pignatelli.com/2008/11/12/php-refactoring-lez-3-metodi-di-una-classe/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP Refactoring &#8211; Lez. 2: proprietà array di una classe</title>
		<link>http://www.pignatelli.com/2008/11/11/php-refactoring-lez-2-proprieta-array-di-una-classe/</link>
		<comments>http://www.pignatelli.com/2008/11/11/php-refactoring-lez-2-proprieta-array-di-una-classe/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 08:09:41 +0000</pubDate>
		<dc:creator>Nicola</dc:creator>
				<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://www.pignatelli.com/?p=514</guid>
		<description><![CDATA[<img src="http://www.pignatelli.com/wp-content/uploads/2008/09/arrow-right-016x016.png" width="16" height="16" alt="" title="Refactoring" /><br/>Oggi parleremo delle proprietà composte di una classe, ovvero di proprietà contenenti un array. 
 
Abbiamo visto nella lezione precedente (PHP Refactoring &#8211; Lez. 1: proprietà di una classe) come scrivere le proprietà semplici di una classe.
Per quanto riguarda le proprietà composte valgono le regole di naming convention introdotte nel precedente tutorial, eccetto  i metodi [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.pignatelli.com/wp-content/uploads/2008/09/arrow-right-016x016.png" width="16" height="16" alt="" title="Refactoring" /><br/><p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Oggi parleremo delle proprietà composte di una classe, ovvero di proprietà contenenti un array. <br />
 </span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Abbiamo visto nella lezione precedente (<a title="PHP Refactoring - lez. 1: proprietà di una classe" href="http://www.pignatelli.com/2008/10/31/php-refactoring-lez-1-proprieta-di-una-classe/">PHP Refactoring &#8211; Lez. 1: proprietà di una classe</a>) come scrivere le proprietà semplici di una classe.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Per quanto riguarda le proprietà composte valgono le regole di naming convention introdotte nel precedente tutorial, eccetto  i metodi di accesso alle stesse. Di seguito lo standard da seguire a livello di classe.</span></p>
<p style="text-align: justify;"><span id="more-514"></span><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Metodo addXXX</span></strong></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Per aggiungere un elemento ad una proprietà composta utilizzeremo un metodo con la seguente signature:</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: courier new,courier;">public function addXXX($valore, </span><span style="font-size: small; font-family: courier new,courier;">$chiave=null</span><span style="font-size: small; font-family: courier new,courier;">)</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Dove XXX deve essere sostituito con il nome della proprietà.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Di seguito è fornito un esempio:</span></p>
<table style="background-color: #000000;" border="0" cellspacing="1" cellpadding="4">
<tbody>
<tr>
<td style="background-color: #ffffff;" valign="top">
<p><span style="font-size: small; font-family: courier new,courier;">class Classe {</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">private $alunni;</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">public function addAlunni($valore, $chiave=null) {</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">if (is_array($valore)) {</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">foreach($valore as $posizione =&gt; $elemento){</span></p>
<p style="padding-left: 120px;"><span style="font-size: small; font-family: courier new,courier;">if ($chiave!=null) {</span></p>
<p style="padding-left: 150px;"><span style="font-size: small; font-family: courier new,courier;">$this-&gt;alunni[$posizione] = </span></p>
<p style="padding-left: 180px;"><span style="font-size: small; font-family: courier new,courier;">$elemento;</span></p>
<p style="padding-left: 120px;"><span style="font-size: small; font-family: courier new,courier;">} else {</span></p>
<p style="padding-left: 150px;"><span style="font-size: small; font-family: courier new,courier;">$this-&gt;alunni[] = $elemento;</span></p>
<p style="padding-left: 120px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">} else if ($chiave == null) {</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">$this-&gt;alunni[] = $valore;</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">} else {</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">$this-&gt;alunni[$chiave] = $valore;</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p><span style="font-size: small; font-family: courier new,courier;">}</span></p>
</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Come si può notare i parametri da passare sono due: il primo obbligatorio, il secondo opzionale.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Non appena entriamo nel metodo <em>addXXX</em> viene controllato se il parametro <em>$valore</em> è un array. in caso affermativo cicliamo su quest&#8217;ultimo, e se il parametro <em>$chiave</em> è null accodiamo gli elementi nella proprietà; se invece <em>$chiave</em> è diverso da <em>null inseriremo il valore $elemento</em><em> nella chiave $posizione</em><em>.</em></span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Nel caso <em>$valore </em>non sia un array e <em>$chiave</em> sia uguale a <em>null</em> inseriremo <em>$valore</em> direttamente nella proprietà <em>$alunni</em>.</span></p>
<p style="text-align: justify;"><span style="font-family: arial,helvetica,sans-serif;">Infine l&#8217;ultimo caso è se il parametro <em>$chiave</em> è valorizzato; in tal caso inseriremo <em>$valore</em> nella posizione <em>$chiave</em> della proprietà <em>$alunni</em> della classe.</span></p>
<p style="text-align: justify;"><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Metodo removeXXX</span></strong></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Per rimuovere un elemento da una proprietà composta utilizzeremo un metodo con la seguente signature:</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: courier new,courier;">public function removeXXX(</span><span style="font-size: small; font-family: courier new,courier;">$chiave=null</span><span style="font-size: small; font-family: courier new,courier;">)</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Dove XXX deve essere sostituito con il nome della proprietà.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Di seguito è fornito un esempio:</span></p>
<table style="background-color: #000000; text-align: justify;" border="0" cellspacing="1" cellpadding="4">
<tbody>
<tr>
<td style="background-color: #ffffff;" valign="top">
<p><span style="font-size: small; font-family: courier new,courier;">class Classe {</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">private $alunni;</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">public function removeAlunni($chiave=null) {</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">if (is_array($chiave)) {</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">foreach($chiave as $posizione=&gt; $valore){</span></p>
<p style="padding-left: 120px;"><span style="font-size: small; font-family: courier new,courier;">unset($this-&gt;alunni[</span><span style="font-size: small; font-family: courier new,courier;">$valore</span><span style="font-size: small; font-family: courier new,courier;">]);</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">} else if ($chiave == null) {</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">$this-&gt;alunni = array();</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">} else {</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">unset($this-&gt;alunni[$chiave]);</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p><span style="font-size: small; font-family: courier new,courier;">}</span></p>
</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Non appena entriamo nel metodo <em>removeXXX</em> viene controllato se il parametro <em>$chiave</em> è un array. in caso affermativo cicliamo su quest&#8217;ultimo, ed eliminiamo tutti gli elementi alle posizioni corrispondenti ai valori contenuti nel parametro del metodo<em>.</em></span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Nel caso <em>$chiave </em>non sia un array ed sia uguale a <em>null</em> resetteremo la proprietà <em>$alunni</em>.</span></p>
<p style="text-align: justify;"><span style="font-family: arial,helvetica,sans-serif;">Infine l&#8217;ultimo caso è se il parametro <em>$chiave</em> è valorizzato; in tal caso elimineremo il valore corrispondente alla posizione <em>$chiave</em> nella </span><span style="font-family: arial,helvetica,sans-serif;">proprietà </span><span style="font-family: arial,helvetica,sans-serif;"><em>$alunni</em> della classe.</span></p>
<p style="text-align: justify;"><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Metodo getXXX</span></strong></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Per recuperare degli elementi da una proprietà composta utilizzeremo un metodo con la seguente signature:</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: courier new,courier;">public function getXXX(</span><span style="font-size: small; font-family: courier new,courier;">$chiave=null</span><span style="font-size: small; font-family: courier new,courier;">)</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Dove XXX deve essere sostituito con il nome della proprietà.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Di seguito è fornito un esempio:</span></p>
<table style="background-color: #000000; text-align: justify;" border="0" cellspacing="1" cellpadding="4">
<tbody>
<tr>
<td style="background-color: #ffffff;" valign="top">
<p><span style="font-size: small; font-family: courier new,courier;">class Classe {</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">private $alunni;</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">public function getAlunni($chiave=null) {</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">if (is_array($chiave)) {</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">$elementi = array();</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">foreach($chiave as $posizione=&gt; $valore){</span></p>
<p style="padding-left: 120px;"><span style="font-size: small; font-family: courier new,courier;">$elementi[$valore] = $this-&gt;alunni[$valore];</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">return $elementi;</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">} else if ($chiave == null) {</span></p>
<p style="padding-left: 90px;"><span style="font-size: small; font-family: courier new,courier;">return $this-&gt;alunni;</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p style="padding-left: 60px;"><span style="font-size: small; font-family: courier new,courier;">return $this-&gt;alunni[$chiave];</span></p>
<p style="padding-left: 30px;"><span style="font-size: small; font-family: courier new,courier;">}</span></p>
<p><span style="font-size: small; font-family: courier new,courier;">}</span></p>
</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Non appena entriamo nel metodo <em>getXXX</em> viene controllato se il parametro <em>$chiave</em> è un array. in caso affermativo cicliamo su quest&#8217;ultimo, ed alla fine ritorniamo un array contenente i valori degli elementi richiesti<em>.</em></span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Nel caso <em>$chiave </em>non sia un array ed sia uguale a <em>null</em> restituiremo tutta la proprietà <em>$alunni</em>.</span></p>
<p style="text-align: justify;"><span style="font-family: arial,helvetica,sans-serif;">Infine l&#8217;ultimo caso corrisponde al parametro <em>$chiave</em> valorizzato; in tal caso restituiremo il valore corrispondente alla posizione <em>$chiave</em> nella proprietà <em>$alunni</em> della classe.</span></p>
<p style="text-align: justify;"><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Chiudiamo la lezione assemblando tutto il codice finora scritto e applicandolo ad un piccolo esempio, chiarificatore:</span></p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.pignatelli.com/2008/11/11/php-refactoring-lez-2-proprieta-array-di-una-classe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

