<?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:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Vita da tecnici</title>
	<atom:link href="http://giovannicuccu.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://giovannicuccu.wordpress.com</link>
	<description>Pensieri e riflessioni sul mondo dell'information technology</description>
	<pubDate>Wed, 18 Jun 2008 19:42:14 +0000</pubDate>
	<generator>http://wordpress.org/?v=MU</generator>
	<language>it</language>
			<item>
		<title>Indovina chi</title>
		<link>http://giovannicuccu.wordpress.com/2008/06/18/indovina-chi/</link>
		<comments>http://giovannicuccu.wordpress.com/2008/06/18/indovina-chi/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 19:42:14 +0000</pubDate>
		<dc:creator>giovannicuccu</dc:creator>
		
		<category><![CDATA[Pensieri sparsi]]></category>

		<category><![CDATA[vita in azienda]]></category>

		<guid isPermaLink="false">http://giovannicuccu.wordpress.com/?p=25</guid>
		<description><![CDATA[Voglio condividere un caso da manuale a cui ho assistito in prima persona in questi giorni. (uso nomi di fantasia per evitare riferimenti espliciti)
L&#8217;azienda Fantasia vuole collaborare (oggi dire vendere sembra una brutta cosa) con l&#8217;azienda Sogno e dopo uno scambio di email/telefonate ecco l&#8217;incontro per fissare i punti cardine del rapporto. L&#8217;azienda Fantasia invia [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Voglio condividere un caso da manuale a cui ho assistito in prima persona in questi giorni. (uso nomi di fantasia per evitare riferimenti espliciti)</p>
<p>L&#8217;azienda Fantasia vuole collaborare (oggi dire vendere sembra una brutta cosa) con l&#8217;azienda Sogno e dopo uno scambio di email/telefonate ecco l&#8217;incontro per fissare i punti cardine del rapporto. L&#8217;azienda Fantasia invia Pippo e Paperino che illustrano i prodotti.</p>
<p>I manager di Sogno sono molto contenti, Pippo e Pluto rispondono alle varie domande e alla fine Biancane afferma: &#8220;Ok, mi avete convinto, allora siamo tutti d&#8217;accordo, andiamo in produzione il 10 luglio&#8221;.</p>
<p>Paperino rimane decisamente perplesso, ammutolito per quel secondo che basta per far capire che casca dalle nuvole (e non atterra dolcemente). Biancaneve reagisce &#8220;Questo era un requisito emerso e comunicato fin dai primi contatti&#8221;. Pluto rimane in silenzio per il tempone cessario a far comparire un sorriso diabolico e dice &#8220;Confido nelle capacità della nostra azienda&#8221;.</p>
<p>Domanda: chi è il tecnico fra Paperino e Pluto?</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/giovannicuccu.wordpress.com/25/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/giovannicuccu.wordpress.com/25/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giovannicuccu.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giovannicuccu.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giovannicuccu.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giovannicuccu.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giovannicuccu.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giovannicuccu.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giovannicuccu.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giovannicuccu.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giovannicuccu.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giovannicuccu.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giovannicuccu.wordpress.com&blog=1565774&post=25&subd=giovannicuccu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giovannicuccu.wordpress.com/2008/06/18/indovina-chi/feed/</wfw:commentRss>
		</item>
		<item>
		<title>I tecnici e i Project Manager</title>
		<link>http://giovannicuccu.wordpress.com/2008/06/15/i-tecnici-e-i-project-manager/</link>
		<comments>http://giovannicuccu.wordpress.com/2008/06/15/i-tecnici-e-i-project-manager/#comments</comments>
		<pubDate>Sun, 15 Jun 2008 13:56:36 +0000</pubDate>
		<dc:creator>giovannicuccu</dc:creator>
		
		<category><![CDATA[organizzazione aziendale]]></category>

		<category><![CDATA[sviluppo software]]></category>

		<category><![CDATA[vita in azienda]]></category>

		<category><![CDATA[project manager]]></category>

		<guid isPermaLink="false">http://giovannicuccu.wordpress.com/?p=24</guid>
		<description><![CDATA[Il rapporto fra tecnici e PM (ovvero i project manager) è quello che solitamente crea più grattacapi. Le cause sono molteplici, ma due sono quelle più frequenti

I soldi
il tempo

Se queste due si è discusso a lungo per cui oggi voglio affrontare un altra causa, più rara, ma ben più insidiosa: il PM ex o finto [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Il rapporto fra tecnici e PM (ovvero i project manager) è quello che solitamente crea più grattacapi. Le cause sono molteplici, ma due sono quelle più frequenti</p>
<ol>
<li>I soldi</li>
<li>il tempo</li>
</ol>
<p>Se queste due si è discusso a lungo per cui oggi voglio affrontare un altra causa, più rara, ma ben più insidiosa: il PM ex o finto tecnico. E&#8217; un mix quasi micidiale che richiede molta calma e fermezza per essere gestito.</p>
<p>Lo scenario è di solito è il seguente:</p>
<p>Arriva il PM con il progetto completo di importo, giornate uomo e scadenze (le stime le ha fatte lui, ha imparato a farle quando era tecnico). Ecco il &#8220;pacco regalo&#8221;, tutto già fissato, c&#8217;è solo da lavorare. Con una sola piccola clausola, che il PM guarda, analizza e critica. E arrivano domande di questo tipo:</p>
<p>Ma questa funzione vuoi proprio farla così?<br />
Ma sei sicuro di scegliere questa architettura?</p>
<p>Per poi passare in un crescendo quasi inarrestabile alle frasi del tipo</p>
<p>L&#8217;ho già fatto 10 anni fa nella metà dei giorni e dei soldi.</p>
<p>A questo punto la risposta è scontata: allora perchè non hai proposto la tua soluzione?</p>
<p>L&#8217;approccio da seguire, se si vuole evitare di arrivare ad una frizione inutile a tutti è quella di stabilire dei confini basati sulle responsabilità: se il progetto è in difficoltà per ragioni tecniche chi è il responsabile?</p>
<p>Lo si scriva nero su biano ed in cc a chi di dovere e la partita è chiusa. Si concorda un piano di scadenze e si lavora su quello.</p>
<p>Le cause di questi attriti non sono tecniche, sono caratteriali. I tecnici solitamente sono tali perchè amano avere il controllo delle cose che fanno, ovvero avere la sensazione (ed in vb6 si andavo veramente poco più in là) che quello che si produce sia assolutamente deterministico. Che cosa controlla un PM?</p>
<p>L&#8217;operato di altre persone (oltre ai soldi s&#8217;intende).</p>
<p>Non c&#8217;è niente di meno deterministico (e se poi si usa ancora vb6&#8230;..)</p>
<p>Come reagisce il PM? Cercando di imporre la sua autorità, con la speranza di un maggiore controllo.</p>
<p>Peccato che le persone riconoscono l&#8217;autorità (in senso lato, ovvero si creino dei riferimenti di cui fidarsi) e quelle imposte senza fondamenta creano un sentimento completamente diverso.</p>
<p>Che fare (se il PM non ci arriva da solo)?</p>
<p>L&#8217;unica speranza di lavorare sereni è quello di concordare costi e scadenze sensati e cercare di proporre soluzioni alle situazioni critiche, ovvero di cominciare a dare delle certezze.  Se il PM capisce di avere un  maggiore controllo e capisce anche che comportandosi in un certo modo può continuare ad averlo probabilmente cambierà atteggiamento.</p>
<p>Basterebbe capire che in progetto in cui ci sono n tecnici ed un pm che farà per forza di cose la maggior parte del lavoro? Per raggiungere lo scopo chi è che deve essere produttivo al 100%?</p>
<p>I tecnici, per cui o li si motiva o non si raggiunge l&#8217;obbiettivo.</p>
<p>Se non lo capisce (o non lo si vuole capire)&#8230;.pazienza, peggio per lui; probabilmente rinuncerà ad una parte del suo premio di produzione (che di solito è più alto di quello di un tecnico).</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/giovannicuccu.wordpress.com/24/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/giovannicuccu.wordpress.com/24/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giovannicuccu.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giovannicuccu.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giovannicuccu.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giovannicuccu.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giovannicuccu.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giovannicuccu.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giovannicuccu.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giovannicuccu.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giovannicuccu.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giovannicuccu.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giovannicuccu.wordpress.com&blog=1565774&post=24&subd=giovannicuccu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giovannicuccu.wordpress.com/2008/06/15/i-tecnici-e-i-project-manager/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Un libro da non perdere</title>
		<link>http://giovannicuccu.wordpress.com/2008/05/27/un-libro-da-non-perdere/</link>
		<comments>http://giovannicuccu.wordpress.com/2008/05/27/un-libro-da-non-perdere/#comments</comments>
		<pubDate>Tue, 27 May 2008 19:44:32 +0000</pubDate>
		<dc:creator>giovannicuccu</dc:creator>
		
		<category><![CDATA[organizzazione aziendale]]></category>

		<category><![CDATA[sviluppo software]]></category>

		<category><![CDATA[vita in azienda]]></category>

		<guid isPermaLink="false">http://giovannicuccu.wordpress.com/?p=23</guid>
		<description><![CDATA[Oggi ho cominciato la lettura di un nuovo libro e (finalmente) ho avuto la conferma che non sono un pazzo visionario, almeno per quanto riguarda il modo di gestire i tecnici di una azienda IT. Essa afferma che molti manager SBAGLIANDO trattano i tecnici come pezzi di una catena di montaggio, quando un pezzo si [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Oggi ho cominciato la lettura di un nuovo libro e (finalmente) ho avuto la conferma che non sono un pazzo visionario, almeno per quanto riguarda il modo di gestire i tecnici di una azienda IT. Essa afferma che molti manager SBAGLIANDO trattano i tecnici come pezzi di una catena di montaggio, quando un pezzo si rompe basta ordinarne uno uguale. Finalmente dopo 10 anni di lavoro leggo un libro che mette nero su bianco quello che ho sempre pensato, ovvero che il motto</p>
<p>&#8220;nessuno è insostituibile&#8221;</p>
<p>sia solo una mezza verità; in quanto è vero che l&#8217;azienda di una certa dimensione va avanti anche se una persona meritevole se ne va, ma è anche vero (e in questo moento non sto pensando a me stesso) che la &#8220;botta&#8221; spesso si sente (e nel 1999-2000 di botte ne ho sentite parecchie).</p>
<p>Il libro continua mostrando come i manager spesso agiscano in maniera semplicemente illogica perchè</p>
<p>&#8220;Le non soluzioni facili hanno molto più appeal delle soluzioni impegnative&#8221;</p>
<p>Molto bello anche il capitolo che spiega come sia sbagliato dare scadenze impossibili o mettere continuamente sotto pressione i tecnici.</p>
<p>Il tutto fa il paio con un paio di situazioni reali (una vissuta in pirma persona ed una no) che confermano ancora di più che non sono io il matto, ma chi crede che lo sviluppo software sia uguale al mondo della produzione industriale (e gestisce le persone come tali).</p>
<p>Mi chiedo come mai ci ho messo tanto a scovare questo libro.</p>
<p>Per chi fosse interessato sto parlando di &#8220;Peopleware&#8221; di Tom DeMarco - Timothy Lister</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/giovannicuccu.wordpress.com/23/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/giovannicuccu.wordpress.com/23/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giovannicuccu.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giovannicuccu.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giovannicuccu.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giovannicuccu.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giovannicuccu.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giovannicuccu.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giovannicuccu.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giovannicuccu.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giovannicuccu.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giovannicuccu.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giovannicuccu.wordpress.com&blog=1565774&post=23&subd=giovannicuccu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giovannicuccu.wordpress.com/2008/05/27/un-libro-da-non-perdere/feed/</wfw:commentRss>
		</item>
		<item>
		<title>La carriera del tecnico</title>
		<link>http://giovannicuccu.wordpress.com/2008/05/22/la-carriera-del-tecnico/</link>
		<comments>http://giovannicuccu.wordpress.com/2008/05/22/la-carriera-del-tecnico/#comments</comments>
		<pubDate>Thu, 22 May 2008 19:41:34 +0000</pubDate>
		<dc:creator>giovannicuccu</dc:creator>
		
		<category><![CDATA[Pensieri sparsi]]></category>

		<category><![CDATA[organizzazione aziendale]]></category>

		<category><![CDATA[vita in azienda]]></category>

		<guid isPermaLink="false">http://giovannicuccu.wordpress.com/?p=22</guid>
		<description><![CDATA[Questo post riprende uno precedente in cui parlavo della parabola del tecnico ed in cui emergeva come, almeno in Italia, non ci sia spazio reale per i tecnici di lunga e comprovata esperienza (o almeno i posti ci sono, ma sono l&#8217;eccezione e non la regola). Durante questi mesi ho avuto l&#8217;occasione di selezionare diverse [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Questo post riprende uno precedente in cui parlavo della parabola del tecnico ed in cui emergeva come, almeno in Italia, non ci sia spazio reale per i tecnici di lunga e comprovata esperienza (o almeno i posti ci sono, ma sono l&#8217;eccezione e non la regola). Durante questi mesi ho avuto l&#8217;occasione di selezionare diverse persone che si candidavano per posizioni tecniche. Con mia grande sorpresa, la netta maggioranza indicava la posizione di tecnico come temporanea, ovvero come balzello da pagare per diventare cosa?</p>
<p>Capo progetto o analista (per fortuna nessuno ha detto manager o dirigente :))</p>
<p>Quando ho chiesto perchè ho ottenuto risposte simili che in sostanza convergevano su un aspetto: il desiderio di coordinare (che tradotto nella mia testa significa parlare molto, scrivere poco e sapere ancora meno).</p>
<p>Tali aspettative si sposano con l&#8217;opinione di un dirigente che conosco che ha più volte affermato (cito quasi testualmente):</p>
<p>&#8220;Se una persona ad una certa età è ancora un tecnico allora è un coglione&#8221;</p>
<p>La certa età è stimata intorno ai 40.</p>
<p>Quello che mi verrebbe da dire a queste persone e che dico pubblicamente è :</p>
<p>Se vole fare i project manager o gli analisti fatelo, ma senza &#8220;inquinare&#8221; le posizioni tecniche dove probabilmente farete solo dei danni in quanto farete un lavoro che non vi appassiona e non adatto a voi. Non sto escludendo una carriera di coordinamento per i tecnici; quando si accumula un buon bagaglio di esperienze è giusto condividerle e far evitare alle persone con meno esperienza i propri errori ed è anche corretto non spendere il proprio tempo in attività senza valore aggiunto.</p>
<p>Se volete fare i manager o dirigenti studiate come tali, pagate un bel MBA, conoscente gente conta e poi trovatevi un lavoro ben pagato, non c&#8217;è bisogno di fare la gavetta da tecnico, anzi è controproducente.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/giovannicuccu.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/giovannicuccu.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giovannicuccu.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giovannicuccu.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giovannicuccu.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giovannicuccu.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giovannicuccu.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giovannicuccu.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giovannicuccu.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giovannicuccu.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giovannicuccu.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giovannicuccu.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giovannicuccu.wordpress.com&blog=1565774&post=22&subd=giovannicuccu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giovannicuccu.wordpress.com/2008/05/22/la-carriera-del-tecnico/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java vs. PHP atto II</title>
		<link>http://giovannicuccu.wordpress.com/2008/04/28/java-vs-php-atto-ii/</link>
		<comments>http://giovannicuccu.wordpress.com/2008/04/28/java-vs-php-atto-ii/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 13:17:01 +0000</pubDate>
		<dc:creator>giovannicuccu</dc:creator>
		
		<category><![CDATA[Pensieri sparsi]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[java vs. php]]></category>

		<guid isPermaLink="false">http://giovannicuccu.wordpress.com/?p=21</guid>
		<description><![CDATA[Dopo aver finito la mia prima applicazione in PHP ed averla messa on-line voglio tornare sull&#8217;argomento del confronto fra le due piattaforme.
Lo scopo del post è rispondere alla famosa domanda: per scrivere la mia applicazione web devo usare java o php?
Caso n.1: se l&#8217;applicazione andrà installata sotto forma di hosting la scelta è praticamente obbligata [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Dopo aver finito la mia prima applicazione in PHP ed averla messa on-line voglio tornare sull&#8217;argomento del confronto fra le due piattaforme.</p>
<p>Lo scopo del post è rispondere alla famosa domanda: per scrivere la mia applicazione web devo usare java o php?</p>
<p>Caso n.1: se l&#8217;applicazione andrà installata sotto forma di hosting la scelta è praticamente obbligata php</p>
<p>Caso n.2: se chi scrive l&#8217;applicazione non ha fatto studi informatici o non ha anni di esperienza nella programmazione la scelta  consigliata è php</p>
<p>Caso n.3 se si sta cercando di fare del content managament (ovvero pubblicazione di contenuti tipo pagine web) la scelta consigliata è quella di guardare se esiste un programma php (e ce ne sono veramente TANTI) che fa al caso vostro.</p>
<p>Caso n.4 se dovete scrivere una applicazione che è al 50% HTML e 50% web service la scelta consigliata è Java</p>
<p>Caso n.5 se dovete fare progetti di cooperazione applicativa (secondo lo standard CNIPA) la scelta obbligata è java</p>
<p>Caso n.6 se dovete produrre applicazioni &#8220;corpose&#8221; Oracle based la scelta caldamente consigliata è Java</p>
<p>Solo i casi n.1 e 5 sono &#8220;obbligatori&#8221;, gli altri sono suggerimenti. Al termine della mia esperienza posso confermare che se si vuole scrivere una applicazione senza usare prodotti già fatti, ma solo librerie(es Spring framework piuttosto che Zend framework) Java è la scelta a mio avviso più produttiva (a patto di ipotizzare che le persone che ci lavorano abbiano la stessa produttività in entrambi gli ambienti) e matura, in quanto a livello di librerie web (e NON di prodotti tipo portali,CMS, etc) Java offre delle soluzioni più complete e più sofisticate (per esempio la gestione delle transazioni via AOP in Spring o i custom tag Spring MVC o Struts).</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/giovannicuccu.wordpress.com/21/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/giovannicuccu.wordpress.com/21/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giovannicuccu.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giovannicuccu.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giovannicuccu.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giovannicuccu.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giovannicuccu.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giovannicuccu.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giovannicuccu.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giovannicuccu.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giovannicuccu.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giovannicuccu.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giovannicuccu.wordpress.com&blog=1565774&post=21&subd=giovannicuccu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giovannicuccu.wordpress.com/2008/04/28/java-vs-php-atto-ii/feed/</wfw:commentRss>
		</item>
		<item>
		<title>lo sviluppo software e le metafore sbagliate: l&#8217;architettura (episodio 2)</title>
		<link>http://giovannicuccu.wordpress.com/2008/03/15/lo-sviluppo-software-e-le-metafore-sbagliate-larchitettura-episodio-2/</link>
		<comments>http://giovannicuccu.wordpress.com/2008/03/15/lo-sviluppo-software-e-le-metafore-sbagliate-larchitettura-episodio-2/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 14:35:29 +0000</pubDate>
		<dc:creator>giovannicuccu</dc:creator>
		
		<category><![CDATA[Pensieri sparsi]]></category>

		<category><![CDATA[project management]]></category>

		<category><![CDATA[sviluppo software]]></category>

		<guid isPermaLink="false">http://giovannicuccu.wordpress.com/?p=20</guid>
		<description><![CDATA[Dopo aver spiegato perchè, secondo me, architettura e sviluppo software non si possono paragonare per quanto riguarda il processo di creazione del prodotto continuo le riflessioni estendole alla fase successiva: il post vendita.
Se nel caso della produzione la metafora poteva sotto qualche aspetto reggere, una volta che si parla di manutenzione la metafora è inapplicabile.
Provo [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Dopo aver spiegato perchè, secondo me, architettura e sviluppo software non si possono paragonare per quanto riguarda il processo di creazione del prodotto continuo le riflessioni estendole alla fase successiva: il post vendita.</p>
<p>Se nel caso della produzione la metafora poteva sotto qualche aspetto reggere, una volta che si parla di manutenzione la metafora è inapplicabile.</p>
<p>Provo ad elencare le differenze con una serie di domande.</p>
<p>Vi immaginate di dover chiamare per forza l&#8217;artigiano che vi ha fatto il lavoro (elettricista, muratore, idraulico, etc) per qualsiasi modifica?</p>
<p>Vi immaginate di dover pagare un contratto di assistenza annuale per i problemi con l&#8217;uso della casa?</p>
<p>Vi immaginate di sentirvi dire dopo tre/cinque anni che la vostra casa è obsoleta e che ne vuole una nuova?</p>
<p>Mi pare che sia sufficiente.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/giovannicuccu.wordpress.com/20/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/giovannicuccu.wordpress.com/20/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giovannicuccu.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giovannicuccu.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giovannicuccu.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giovannicuccu.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giovannicuccu.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giovannicuccu.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giovannicuccu.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giovannicuccu.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giovannicuccu.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giovannicuccu.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giovannicuccu.wordpress.com&blog=1565774&post=20&subd=giovannicuccu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giovannicuccu.wordpress.com/2008/03/15/lo-sviluppo-software-e-le-metafore-sbagliate-larchitettura-episodio-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>lo sviluppo software e le metafore sbagliate: l&#8217;architettura (episodio 1)</title>
		<link>http://giovannicuccu.wordpress.com/2008/03/08/lo-sviluppo-software-e-le-metafore-sbagliate-larchitettura-episodio-1/</link>
		<comments>http://giovannicuccu.wordpress.com/2008/03/08/lo-sviluppo-software-e-le-metafore-sbagliate-larchitettura-episodio-1/#comments</comments>
		<pubDate>Sat, 08 Mar 2008 14:55:47 +0000</pubDate>
		<dc:creator>giovannicuccu</dc:creator>
		
		<category><![CDATA[Pensieri sparsi]]></category>

		<category><![CDATA[vita in azienda]]></category>

		<category><![CDATA[architettura]]></category>

		<category><![CDATA[informatica]]></category>

		<category><![CDATA[sviluppo software]]></category>

		<guid isPermaLink="false">http://giovannicuccu.wordpress.com/?p=19</guid>
		<description><![CDATA[E&#8217; già da diverso tempo che ho in testa questo argomento. Spesso la progettazione e lo sviluppo vengono paragonate all&#8217;architettura, da cui vengono presi a prestito vari modelli. Un esempio su tutti è la qualifica software architect.
A mio parere assimilare il processo di realizzazione di un software al processo di realizzazione di un edificio è [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>E&#8217; già da diverso tempo che ho in testa questo argomento. Spesso la progettazione e lo sviluppo vengono paragonate all&#8217;architettura, da cui vengono presi a prestito vari modelli. Un esempio su tutti è la qualifica software architect.</p>
<p>A mio parere assimilare il processo di realizzazione di un software al processo di realizzazione di un edificio è decisamente fuorviante e ci sono più divergenze che similitudini.</p>
<p>Consideriamo come viene fatto un edificio: si parte dal progetto che viene approvato (a volte accompagnato della presentazione di un plastico)  e da lì si comincia a costruire. Una volta che si comincia alcune cose diventano immutabili, per esempio non è più possibile (se non con costi ed oneri esagerati)  spostare la costruzione o cambiare forma alle fondamenta. E&#8217; possibile cambiare i particolari, le collocazioni di alcuni muri, ma la natura dello stabile rimane quella del progetto. La costruzione viene fatta da una serie di figure completamente diverse e spesso molto specializzate, chi tira su i muri difficilmente monta gli infissi o fa l&#8217;impianto elettrico o quello idraulico o posa i pavimenti. L&#8217;architetto o l&#8217;ingegnere o il geometra vanno in cantiere per assicurarsi che il direttore lavori segua fedelmente il progetto, ma sicuramente &#8220;non vanno alla betoniera&#8221;.  Un altro fattore importante è l&#8217;interscambiabilità, un muratore un giorno fa un pezzo di muro che il giorno dopo può essere finito da un collega, senza particolari passaggi di consegna.</p>
<p>In sostanza tutto procede secondo logiche preordinate e basate su standard accettati. (Se qualcuno pensa che nei cantieri edili ci sia il caos legga quello che segue).</p>
<p>Nell&#8217;informatica invece non accade nulla o quasi di tutto questo. Il committente spesso aprrova un progetto non conoscendo i dettagli di cosa verrà fuori  e capisce cosa vuole solo quando vede funzionare un pezzo di software. Ne risulta che spesso è necessario un ciclo di prototipi e rilasci per tarare il tiro. Chi di noi andrebbe ogni giorno in un cantiere cantiere che ha commissionato dicendo &#8220;mi sposti la finestra più in qua&#8221; o  &#8220;le piastrelle che ho scelto e che avete montato non mi piacciono più&#8221; o ancora  &#8220;mi sposta la casa altri di 30cm dalla strada&#8221;? aggiungendo &#8220;tanto quanto vuoi che costi&#8221;?</p>
<p>Chi costruisce una casa sa benissimo che dopo che un pezzo è stato fatto c&#8217;è un costo ben preciso per buttare giù e rifare. Chi commissiona un software evidentemente no.</p>
<p>Un altro aspetto è la specializzazione che nell&#8217;informatica è molto meno sviluppata, proviamo a lasciare una classe o anche una funzione a metà ed assegnare ad un altro programmatore il compito di finirla; quanto tempo ci vuole per la presa in carico di quanto già fatto? Inoltre spesso unprogrammatore svolge diversi compiti (design dell&#8217;interfaccia grafica, modellazione/definizione di parti della base dati, etc)</p>
<p>Un altro indicatore che indica quanto la produzione del software sia diversa e più arretrata rispetto alle costruzioni edili è la presenza dei building block ovvero dei componenti riusabili. Nell&#8217;edilizia si usano, mattoni porte e finestre già fatte, nell&#8217;informatica molto meno. Cosa succederebbe se un giorno entraste nel cantiene dove stanno costruendo casa vostra e vedeste un muratore che con un camino acceso fabbrica dei mattoni? Immaginiamo il dialogo:</p>
<p>Noi: Buongiorno, cosa sta facendo?</p>
<p>Muratore: Buongiorno, sto facendo i mattoni per costruire la casa</p>
<p>Noi: Perchè?</p>
<p>Muratore: Sa, quelli che sono in commercio non mipiacciono tanto, poi hanno quegli spigoli così ruvidi, me li faccio io così faccio prima e sono come mi servono.</p>
<p>Il risultato sarebbe: fuori dal cantiere a calci nel sedere.</p>
<p>Nell&#8217;informatica molto pochi si scandalizzano se qualcuno nel 2008 si fa un package di logging in java o in .net eppure la fine dovrebbe essere quella del mutatore sopra citato.</p>
<p>Un&#8217;altra differenza sostanziale è che chi comincia a programmare fa una carriera in cui pian piano diventa coordinatore e poi project manager o commerciale; quanti muratori-architetetti o elettricisti-ingegneri  conosciamo?</p>
<p>Si conclude qui questa riflessione sul processo di costruzione software e sulle sue differenze rispetto al processo di costruzione edile.  Tutti i fattori elencati fanno parte della fase costruzione, manca ancora la fase &#8220;manutenzione e post vendita&#8221;, ma credo che già si intuisca come parlare di software architect sia una cosa che non ha fondamento reale. Nei prossimi articoli proverò ad illustrare altre differenze e delle metafore più appropriate.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/giovannicuccu.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/giovannicuccu.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giovannicuccu.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giovannicuccu.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giovannicuccu.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giovannicuccu.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giovannicuccu.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giovannicuccu.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giovannicuccu.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giovannicuccu.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giovannicuccu.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giovannicuccu.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giovannicuccu.wordpress.com&blog=1565774&post=19&subd=giovannicuccu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giovannicuccu.wordpress.com/2008/03/08/lo-sviluppo-software-e-le-metafore-sbagliate-larchitettura-episodio-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>VB6 vs. Java</title>
		<link>http://giovannicuccu.wordpress.com/2008/03/03/vb6-vs-java/</link>
		<comments>http://giovannicuccu.wordpress.com/2008/03/03/vb6-vs-java/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 08:08:46 +0000</pubDate>
		<dc:creator>giovannicuccu</dc:creator>
		
		<category><![CDATA[Pensieri sparsi]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[java vs. vb6]]></category>

		<category><![CDATA[vb6]]></category>

		<guid isPermaLink="false">http://giovannicuccu.wordpress.com/?p=18</guid>
		<description><![CDATA[L&#8217;idea di fare un paragone fra VB6 e Java mi è venuta da una serie di esperienze recenti dove ho dovuto modificare o analizzare codice VB6 e java scritto da altre persone. Erano almeno 6 anni che non usavo VB6 e un ritorno al passato mi ha fatto capire le ragioni del suo successo. La [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>L&#8217;idea di fare un paragone fra VB6 e Java mi è venuta da una serie di esperienze recenti dove ho dovuto modificare o analizzare codice VB6 e java scritto da altre persone. Erano almeno 6 anni che non usavo VB6 e un ritorno al passato mi ha fatto capire le ragioni del suo successo. La prima cosa che ho notato del codice VB6 è stata la sua densità, ovvero quasi tutte le righe di codice erano dedicate a svolgere il compito specifico per cui era pensato il software; il codice Java che ho dovuto analizzare invece era l&#8217;opposto, per trovare le classi che svolgevano la funzionalità applicativa ho devuto aprire almeno 10 classi scritte per mettere le funzionalità applicative dentro il framework.</p>
<p>Questo mi ha fatto riflettere perchè in parte corrispondeva alle mie esperienze lavorative precedenti, da cui sembra emergere che i programmatori Java tendano a farsi tutto in casa; ovvero il logging, il mapping fra oggetti e RDBMS e così via. In VB no, codice e codice che fa le query e gestisce gli eventi utente, librerie custom zero o quasi (se non wrapper per usare meglio le funzionalità esistenti).</p>
<p>Credo che la ragione del VB6 sia stata proprio la produttività ovvero la tendenza con cui il linguaggio e l&#8217;ambiente di sviluppo portavano il programmatore a concentrarsi sulle funzionalità applicative. Credo che la situazione di Java nel 2008 sia QUASI come quella di VB6 nel 2000 nel senso che ormai ci sono tutte le librerie per concentrarsi solo sull&#8217;implemetazione degli aspetti funzionali.</p>
<p>Nonostante tutto non rimpiango i giorni in cui lavoravo in VB6 (anzi lo considero una sorta di peccato orginale). La ragione è molto semplice: in VB non si ha il controllo di niente, ovvero basta cominciare a complicare un po&#8217; la logica applicativa per trovarsi intricati in una serie di eventi che rendono difficile stabilire un comportamento completamente deterministico.  In Java il programmatore ha il controllo di quello che accade e può influire in maniera molto più efficace sul flusso di esecuzione. Questo credo che sia stata una delle ragioni del successo di Java (nei confronti di VB), il senso di sicurezza che viene dato al programmatore. Un&#8217;altra ragione è sicuramente stata il mix di eleganza/potenza della soluzione servlet+jsp che ha permesso a Java di diventare il riferimento in ambito server side. La risposta Microsoft, ovvero .net ha superato tutti i problemi tecnici precedenti e sotto alcuni punti di vista è superiore a Java (da quel poco che ho visto di C#, mi sembra una versione di Java rivista e migliorata), ma con il vincolo non indifferente di rimanere ancorata alla piattaforma Windows. Senza considerare che il codice VB6 va riscritto per essere convertito a .net per cui se si decide di cambiare il salto verso Java non è così doloroso rispetto a quello .net.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/giovannicuccu.wordpress.com/18/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/giovannicuccu.wordpress.com/18/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giovannicuccu.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giovannicuccu.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giovannicuccu.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giovannicuccu.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giovannicuccu.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giovannicuccu.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giovannicuccu.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giovannicuccu.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giovannicuccu.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giovannicuccu.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giovannicuccu.wordpress.com&blog=1565774&post=18&subd=giovannicuccu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giovannicuccu.wordpress.com/2008/03/03/vb6-vs-java/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java Vs. PHP</title>
		<link>http://giovannicuccu.wordpress.com/2008/02/23/java-vs-php/</link>
		<comments>http://giovannicuccu.wordpress.com/2008/02/23/java-vs-php/#comments</comments>
		<pubDate>Sat, 23 Feb 2008 14:49:08 +0000</pubDate>
		<dc:creator>giovannicuccu</dc:creator>
		
		<category><![CDATA[Pensieri sparsi]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[java vs. php]]></category>

		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://giovannicuccu.wordpress.com/?p=17</guid>
		<description><![CDATA[Negli ultimi mesi ho speso parecchie ore ad imparare ed usare il php, per cui ora che sono arrivato ad una sua discreta conoscenza vorrei provare a buttare giù qualche riflessione. Dal punto di vista del linguaggio la differenza più grande è che Java è tipizzato mentre PHP no. La seconda differenza è che in [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Negli ultimi mesi ho speso parecchie ore ad imparare ed usare il php, per cui ora che sono arrivato ad una sua discreta conoscenza vorrei provare a buttare giù qualche riflessione. Dal punto di vista del linguaggio la differenza più grande è che Java è tipizzato mentre PHP no. La seconda differenza è che in Java le variabili vanno dichiarate, in PHP no. A mio modo di vedere sono due grossi svantaggi a favore del PHP, perchè rendono più facile la scrittura di codice bacato. Una (almeno per me) stranezza del PHP è che i nomi delle variabili sono case sensitive, mentre quelli delle funzioni no. Anche questo fattore crea problemi almeno per chi è alle  prime armi.  La cosa invece che apprezzo del PHP è che è interpretato e quindi non devo riavviare Apache quando cambio il codice. Un&#8217;altra cosa positiva sempre legata alla dinamicità del php è che si sente molto meno l&#8217;esigenza di file di configurazione, in quanto il codice può essere la configurazione del sistema (si cambiano i valori delle variabili e via); in java ormai se non ci sono quintali di file XML si riesce a fare ben poco. E&#8217; vero che questo potrebbe essere un problema legato più alle librerie che al linguaggio, ma se Java potesse essere dinamico come PHP credo che la configurazione di molte applicazioni sarebbe diversa. Per quanto riguarda il discorso legato alla produttività (che è stato il primo aspetto che mi ha spinto ad usare PHP) devo dire che il maggior peso lo hanno le librerie e che dipende da cosa si deve fare. Se si devono scrivere applicazioni web da zero e si dispone già di un server con Java (e di una struttura sistemistica dietro)  secondo me Java aiuta di più. Se invece il target è un sito dinamico in hosting/housing presso un provider internet allora PHP è una scelta obbligata in quanto il supporto Java è pressochè nullo (a meno che non vogliate gestire un server dedicato o virtuale). PHP ha il grosso vantaggio di offrire una serie di prodotti gratuiti per quasi tutti i tipi di applicazioni. Basta cercare PHP CMS su google per rendersi conto del grosso vantaggio rispetto a Java. La (presunta) maggiore produttività vantata dagli ambienti PHP è dovuta essenzialmente alla presenza di applicazioni già fatte che consentono di non partire da zero. Le controparti in Java esistono, ma sono molto rare e molto più complesse (e solitamente si portano dietro mega e mega di Jar). Se dovessi scrivere una applicazione da zero e fare uso solo di librerie e non di prodotti esistenti allora Java, almeno per chi lo conosce e usa le librerie esistenti senza riscrivere ogni volta le cose da zero è la scelta migliore. In questo caso sono le librerie a fare la differenza: io posso dire a ragion veduta che SpringMVC offre un insieme di funzionalità nettamente maggiori rispetto allo Zend framework (sempre MVC). E&#8217; vero che Zend è un framework più giovane, ma se devo sviluppare adesso (e consegnare per ieri)&#8230;&#8230;.</p>
<p>Alla prossima dove parlerò di VB6.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/giovannicuccu.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/giovannicuccu.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giovannicuccu.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giovannicuccu.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giovannicuccu.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giovannicuccu.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giovannicuccu.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giovannicuccu.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giovannicuccu.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giovannicuccu.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giovannicuccu.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giovannicuccu.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giovannicuccu.wordpress.com&blog=1565774&post=17&subd=giovannicuccu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giovannicuccu.wordpress.com/2008/02/23/java-vs-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java encoding addedum no. 5: il peccato capitale String.getBytes()</title>
		<link>http://giovannicuccu.wordpress.com/2008/01/31/java-encoding-addedum-no-5-il-peccato-capitale-stringgetbytes/</link>
		<comments>http://giovannicuccu.wordpress.com/2008/01/31/java-encoding-addedum-no-5-il-peccato-capitale-stringgetbytes/#comments</comments>
		<pubDate>Thu, 31 Jan 2008 20:49:12 +0000</pubDate>
		<dc:creator>giovannicuccu</dc:creator>
		
		<category><![CDATA[Pensieri sparsi]]></category>

		<category><![CDATA[java encoding]]></category>

		<category><![CDATA[xml caratteri accentati]]></category>

		<category><![CDATA[xml encoding]]></category>

		<guid isPermaLink="false">http://giovannicuccu.wordpress.com/?p=16</guid>
		<description><![CDATA[Si conclude con questo articolo la panoramica sull&#8217;encoding in Java e sulle ragioni delle eccezioni che spesso si incontrano nel fare il parsing dei file xml.
Questo ultimo articolo è dedicato alla fonte più ricorrente di tali errori. la chiamata del metodo getBytes della classe String senza parametri (parametri nella getBytes?? eh sì, esite anche la [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Si conclude con questo articolo la panoramica sull&#8217;encoding in Java e sulle ragioni delle eccezioni che spesso si incontrano nel fare il parsing dei file xml.</p>
<p>Questo ultimo articolo è dedicato alla fonte più ricorrente di tali errori. la chiamata del metodo getBytes della classe String <b>senza parametri</b> (parametri nella getBytes?? eh sì, esite anche la getBytes che accetta un argomento). L&#8217;esperienza mi insegna che dove c&#8217;è una getBytes() e del parsing xml prima o poi compaiono errodi di encoding. Perchè?</p>
<p>Perchè effettua l&#8217;encoding usando il charset della piattaforma su cui gira java e quindi varia da sistema operativo a sistema operativo. Chi riceve la sequenza di caratteri tradotta in byte non sa che encoding è stato usato, per cui si può solo indovinare. Se proprio serve serializzare dei caratteri in uno stream di byte la prima cosa da fare è concordare l&#8217;encoding in modo che chi riceve e chi trasmette possa scambiarsi i dati. Consiglio di utilizzare UTF-8 che consente di inviare caratteri di vario tipo (anche quelli non europei). Neanche a farlo apposta in questi giorni mi sono scontrato con del mio codice (sigh) che per fare il parsing di un file xml richiede come parametro un InputStream; peccato che la funzione chiamante passasse una stringa. Per passare da una stringa ad un inputstream si fa getBytes e poi si passa il risultato ad un ByteArrayInputStream. E zac!! ci si espone ad errori di encoding perchè i parser leggono da InputStream l&#8217;encoding da utilizzare che non c&#8217;entra nulla con quello dello stream che è ottenuto da una getBytes. La soluzione è di aggiungere un metodo che accetta come parametro un reader e usare un StringReader.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/giovannicuccu.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/giovannicuccu.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/giovannicuccu.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/giovannicuccu.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/giovannicuccu.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/giovannicuccu.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/giovannicuccu.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/giovannicuccu.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/giovannicuccu.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/giovannicuccu.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/giovannicuccu.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/giovannicuccu.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=giovannicuccu.wordpress.com&blog=1565774&post=16&subd=giovannicuccu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://giovannicuccu.wordpress.com/2008/01/31/java-encoding-addedum-no-5-il-peccato-capitale-stringgetbytes/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>