<?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>ilPestifero &#187; Programmazione</title>
	<atom:link href="http://www.ilpestifero.net/category/programmazione/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ilpestifero.net</link>
	<description>uno sguardo critico al mondo che ci circonda</description>
	<lastBuildDate>Fri, 10 Feb 2012 08:24:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Internet Explorer è un bug unico</title>
		<link>http://www.ilpestifero.net/2011/07/26/internet-explorer-e-un-bug-unico/</link>
		<comments>http://www.ilpestifero.net/2011/07/26/internet-explorer-e-un-bug-unico/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 13:05:21 +0000</pubDate>
		<dc:creator>ilpestifero</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Web design]]></category>
		<category><![CDATA[Web standard]]></category>
		<category><![CDATA[cache-control]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[header]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[pragma]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://www.ilpestifero.net/?p=1506</guid>
		<description><![CDATA[Dopo averci combattuto per molti giorni, finalmente ho risolto un problema che affliggeva un&#8217;applicazione web sulla quale sto lavorando in azienda. Il problema, che al solito si verificava solo su Internet Explorer (dalla versione 6 in avanti, almeno fino alla 8, non ho verificato la 9), impediva agli sfortunati utilizzatori di questo browser, di scaricare [...]]]></description>
			<content:encoded><![CDATA[<p>Dopo averci combattuto per molti giorni, finalmente ho risolto un problema che affliggeva un&#8217;applicazione web sulla quale sto lavorando in azienda.</p>
<p>Il problema, che al solito si verificava solo su <strong>Internet Explorer</strong> (dalla versione 6 in avanti, almeno fino alla 8, non ho verificato la 9), impediva agli sfortunati utilizzatori di questo browser, di scaricare file pdf generati dall&#8217;applicazione web.</p>
<div class="center"><img title="internet explorer unable to download file over ssl :(" src="http://www.ilpestifero.net/wp-content/uploads/2011/07/internet_explorer_file_pdf_ssl_error.png" alt="internet explorer unable to download file over ssl :(" width="610" height="336" /></div>
<p>Internet Explorer, oltre a non rispettare correttamente tutti gli header http che l&#8217;applicazione web genera, ha infatti un <a href="Internet Explorer file downloads over SSL do not work with the cache control headers">bug che impedisce di scaricare file pdf se la connessione è protetta da SSL</a>, come riportato dalla stessa microsoft</p>
<blockquote><p>When you try to open a Microsoft Office document or a PDF file by typing an HTTPS URL for the document in the Address bar of Internet Explorer 6 Service Pack 1 (SP1), you may receive the following error message:<br />
Unable to download.<br />
Internet Explorer was unable to open this site. The requested site is either unavailable or cannot be found. Please try again later.</p></blockquote>
<div>Una volta individuato il problema, ho risolto utilizzando il <a href="http://stackoverflow.com/questions/1218925/php-script-to-download-file-not-working-in-ie/4465299#4465299">workaround proposto in questa discussione su stackoverflow</a>.</div>
<div>In pratica è necessario prima di inviare il file, rimuovere due header http nel seguente modo, così da settarli vuoti ed &#8220;ingannare&#8221; Internet Exploder.</div>
<pre>header("Pragma: ");
header("Cache-Control: ");</pre>
<p>Nel mio caso, essendo l&#8217;applicazione web sviluppata con <a href="http://www.symfony-project.org/">Symfony</a> 1.4, ho modificato il tutto nel seguente modo:</p>
<pre>$response-&gt;clearHttpHeaders();
$response-&gt;setContentType('application/force-download');
/**
* Empty pragma and cache-control to allow IEx to download file through ssl
* <a href="http://support.microsoft.com/kb/323308/en-us" rel="nofollow">http://support.microsoft.com/kb/323308/en-us</a>
**/
$response-&gt;setHttpHeader('Pragma','',true);
$response-&gt;setHttpHeader('Cache-Control','',true);
/*************************************************/
$response-&gt;setHttpHeader('Content-Disposition', 'attachement; filename='.$this-&gt;filename, true);
$response-&gt;setContent(file_get_contents($filename));
return sfView::NONE;</pre>
<p>Ossia per precauzione cancello tutti gli header http eventualmente settati nella risposta, quindi <a href="https://www.vbulletin.com/forum/showthread.php/70959-HTTP-Headers-to-force-file-to-download-rather-than-auto-open">setto il content-type ad application/force-download per evitare un altro comportamento non desiderato di ie</a>, procedo settando gli header pragma e cache-control vuoti, metto nel content della risposta il contenuto del file che voglio far scaricare e quindi disabilito la vista.</p>
<p>Ovviamente con tutti gli altri browser testati (Firefox 3 e superiori, Chrome 9+, Opera 10+) funzionava senza alcun problema anche in precedenza.</p>
<p>La morale è: per favore non utilizzate Internet Explorer, usate un browser rispettoso degli standard web, possibilmente aggiornato e per il quale non sia necessario per funzionare ricorrere sempre ad hack e workaround vari.<br />
Consiglio sempre, sia quando mi trovo nei peggiori bar di Caracas sia nelle applicazioni web che sviluppo e/o mantengo, il sito <a href="http://www.abetterbrowser.org/">abetterbrowser</a> in cui vengono consigliati alcuni browser alternativi e migliori.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ilpestifero.net/2011/07/26/internet-explorer-e-un-bug-unico/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sviluppare per Android su Ubuntu &#8211; setup</title>
		<link>http://www.ilpestifero.net/2011/03/23/sviluppare-per-android-su-ubuntu-setup/</link>
		<comments>http://www.ilpestifero.net/2011/03/23/sviluppare-per-android-su-ubuntu-setup/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 16:31:24 +0000</pubDate>
		<dc:creator>ilpestifero</dc:creator>
				<category><![CDATA[Open source]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[adt]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.ilpestifero.net/?p=1355</guid>
		<description><![CDATA[Da quando ho preso l&#8217;HTC Desire, oltre a riempirlo di applicazioni Open Source e ad informarmi a 360° sul mondo di Android, ho iniziato a studiare e sviluppare i primi esempi di applicazioni. Per fare ciò è necessario preparare il nostro ambiente di sviluppo, installando e configurando i componenti necessari. Analogamente a ciò che uso [...]]]></description>
			<content:encoded><![CDATA[<p>Da quando ho preso l&#8217;<a href="http://www.htc.com/it/product/desire/overview.html">HTC Desire</a>, oltre a riempirlo di <a href="http://en.wikipedia.org/wiki/List_of_open_source_Android_applications">applicazioni</a> <a href="http://f-droid.org/repository/browse/">Open</a> <a href="https://wiki.koumbit.net/AndroidFreeSoftware">Source</a> e ad informarmi a 360° sul mondo di <strong>Android</strong>, ho iniziato a studiare e sviluppare i primi esempi di applicazioni.</p>
<p>Per fare ciò è necessario preparare il nostro ambiente di sviluppo, installando e configurando i componenti necessari.</p>
<p>Analogamente a ciò che uso in ambito lavorativo, sia il sistema operativo che l&#8217;IDE sono rimasti gli stessi, ossia <a href="http://www.ubuntu.com/">Ubuntu</a> 10.10 e <a href="http://www.eclipse.org/">Eclipse</a> 3.6.</p>
<p>Oltre a questi sono però necessari dei componenti aggiuntivi, specifici per lo sviluppo di applicazioni per Android.</p>
<p>In questo primo articolo vedremo quali sono e come configurarli:</p>
<ul>
<li><strong>java 5+</strong></li>
<li><strong>Android sdk</strong></li>
<li>Android Development Toolkit (<strong>ADT</strong>) per Eclipse</li>
</ul>
<h2>java 5+</h2>
<p>Su Ubuntu aprite Synaptic (<em>Sistema &gt; Amministrazione &gt; Gestione Pacchetti</em>), cercate <strong>openjdk</strong>, ed installate, i pacchetti <strong>openjdk-6-jre</strong> e <strong>openjdk-6-jdk</strong>.</p>
<p>Per verificare la versione aprite il terminale (Applicazioni &gt; Accessori &gt; Terminale) e digitate <strong>java -version</strong></p>
<p><code>java version "1.6.0_20"</p>
<p>OpenJDK Runtime Environment (IcedTea6 1.9.7) (6b20-1.9.7-0ubuntu1)</p>
<p>OpenJDK Server VM (build 19.0-b09, mixed mode)</code></p>
<p>e <strong>javac -version</strong></p>
<p><code>javac 1.6.0_20</code></p>
<p>&nbsp;</p>
<h2>Android sdk (starter package)</h2>
<p>La pagina di riferimento è sul sito <a href="http://developer.android.com/sdk/index.html">developer.android.com</a>. Io nella fattispecie ho scaricato l&#8217;<strong>sdk starter package</strong> per Linux(1): <a href="http://dl.google.com/android/android-sdk_r16-linux.tgz">android-sdk_r16-linux_x86.tgz</a>.</p>
<p>Una volta scaricato estraetelo e spostate la cartella <strong>android-sdk-linux_x86</strong> dove preferite; io l&#8217;ho spostata in /opt.</p>
<p>Portatevi quindi all&#8217;interno di tale cartella (<em>/opt/android-sdk-linux_x86</em>), entrate nella sottocartella tools e fate doppio click sul file <strong>android</strong> e confermate l&#8217;esecuzione.</p>
<p><a href="http://www.ilpestifero.net/wp-content/uploads/2011/03/android_tools.png"><img class="center size-medium wp-image-1433" title="android_tools" src="http://www.ilpestifero.net/wp-content/uploads/2011/03/android_tools-300x165.png" alt="" width="300" height="165" /></a></p>
<p>Avete appena avviato il <strong>setup dell&#8217;sdk di Android</strong>, mediante il quale andremo prima ad installare ed aggiornare tutti i componenti necessari, e quindi ad aggiungere almeno un <strong>virtual device</strong>.</p>
<p><a href="http://www.ilpestifero.net/wp-content/uploads/2011/03/setup_sdk_before.png"><img class="center size-medium wp-image-1433" title="setup_sdk_before" src="http://www.ilpestifero.net/wp-content/uploads/2011/03/setup_sdk_before-300x185.png" alt="" width="300" height="185" /></a></p>
<p>Per aggiornare tutti i componenti è sufficiente portarsi nel tab &#8220;Installed packages&#8221;, cliccare &#8220;Update All&#8230;&#8221; e confermare. Dopo qualche minuto, in base alla vostra connessione, avrete tutti i componenti dell&#8217;sdk installati.(2)</p>
<p>Adesso creiamo anche un virtual device, ossia un device Android virtuale (<acronym title="Android Virtual Device">AVD</acronym>) che useremo per provare le applicazioni che svilupperemo.</p>
<p>Per fare ciò riportatevi nel tab &#8220;Virtual devices&#8221;, click su <em>New</em> e createne uno con le specifiche che più fanno al caso vostro (io ho scelto come target API, la versione 2.2 di android).</p>
<p><a href="http://www.ilpestifero.net/wp-content/uploads/2011/03/avd.png"><img class="center size-medium wp-image-1434" title="avd" src="http://www.ilpestifero.net/wp-content/uploads/2011/03/avd-300x239.png" alt="" width="300" height="239" /></a></p>
<p>&nbsp;</p>
<h2>Android Development Toolkit (ADT)</h2>
<p>Google ha creato uno splendido plugin per Eclipse(3) che velocizza e semplifica molto lo sviluppo di applicazioni per Android.</p>
<p>Per installare il plugin ADT (4) all&#8217;interno del vostro Eclipse, dovete aprire <em>Help &gt; Install new software</em>, ed aggiungere una nuova sorgente con il seguente url:</p>
<p><strong><a href="https://dl-ssl.google.com/android/eclipse/" rel="nofollow">https://dl-ssl.google.com/android/eclipse/</a></strong></p>
<p>Quindi selezionate Developer Tools e procedete con l&#8217;installazione.</p>
<p>Riavviate Eclipse, aggiungete le perspective <em>Java</em> e <em>DDMS</em>, infine collegate l&#8217;sdk di Android precedentemente installato, andando in <em>Window &gt; Preferences &gt; Android</em>, e scegliendo la directory dove avete installato l&#8217;sdk (nel mio caso <em>/opt/android-sdk-linux_x86</em>).</p>
<p>&nbsp;</p>
<p>Avete finito. Ora siete pronti per creare la vostra prima applicazione Android.</p>
<p>In un prossimo articolo vedremo quanto sia veloce creare l&#8217;Hello World per Android e iniziare lo sviluppo di applicazioni più complesse, attingendo e studiando dai molti tutorial disponibili online e dai sorgenti delle numerose applicazioni Open Source disponibili.</p>
<h3>Aggiornamento del 3 dicembre 2011</h3>
<p>Con le ultime versioni dell&#8217;sdk di android (> r15) l&#8217;interfaccia è cambiata un po&#8217; ma i concetti rimangono gli stessi.</p>
<p>Una volta lanciato scaricato ed estratto l&#8217;sdk e lanciato android, è sufficiente selezionare i pacchetti che ci interessano, io ad esempio avendo un HTC desire con Android 2.2 ho scaricato le API v8, comprese quelle di Google Maps.</p>
<p>Anche il plugin di Eclipse è stato migliorato, ora una volta installato vi presenterà al primo avvio una finestra in cui collegare l&#8217;sdk di android che avete precedentemente installato (o nel caso non lo abbiate gia fatto potrete scaricarlo e installarlo direttamente da qui).</p>
<p><a href="http://www.ilpestifero.net/wp-content/uploads/2011/03/sdk15.png"><img class="center" title="sdk15" src="http://www.ilpestifero.net/wp-content/uploads/2011/03/sdk15-300x195.png" alt="" width="300" height="195" /></a></p>
<p><a href="http://www.ilpestifero.net/wp-content/uploads/2011/03/adt_new.png"><img class="center" title="adt_new" src="http://www.ilpestifero.net/wp-content/uploads/2011/03/adt_new-300x258.png" alt="" width="300" height="258" /></a></p>
<h3>Note:</h3>
<p>1) L&#8217;sdk di Android è multipiattaforma e funziona oltre che in Linux, sia sotto Windows che Mac OS X. Questo è uno dei tanti punti di forza di Android.</p>
<p>2) Se volete sviluppare applicazioni che usano le <strong>google maps</strong>, allora è necessario che installiate anche tali api. Queste API si trovano in <em>Available packages &gt; Third party Add-ons &gt; Google Inc</em>. Io ho installato la versione Android API 8, revision 2, dato che sto sperimentando con l&#8217;applicazione Open Source <a href="http://kenkinder.com/gps-share/">GPS Share</a>.</p>
<p>3) Se non avete già installato Eclipse, vi basta scaricarne una <a href="http://www.eclipse.org/downloads/">versione dal sito ufficiale</a>, io vi consiglio <em>Eclipse IDE for Java Developers</em>, o in alternativa installare l&#8217;ultima versione pacchettizzata da Ubuntu (al momento <em>Eclipse 3.5.2</em>), sempre con il solito <em>Synaptic</em>.</p>
<p>4) Nel caso in cui non riusciate ad installare il plugin ADT per Eclipse e l&#8217;errore sia questo &#8216;missing &#8220;org.eclipse.wst.sse.core 0.0.0&#8243;&#8216;, vi basta aggiungere ai repository software di Eclipse quello per la vostra versione, ossia <a href="http://download.eclipse.org/releases/indigo" target="_blank">http://download.eclipse.org/releases/indigo</a> nel caso abbiate installato la versione Indigo di Eclipse (sostituite Indigo con Helios, Galileo etc. a seconda della vostra versione). Così facendo e ripetendo l&#8217;installazione di ADT le dipendenze mancanti verranno recuperate dal repository appena aggiunto.</p>
<h3>Guide di Riferimento:</h3>
<p><a href="http://www.techhamlet.com/2010/10/android-application-development-with-eclipse-ide/">http://www.techhamlet.com/2010/09/test-android-applications/</a></p>
<p><a href="http://www.techhamlet.com/2010/10/android-application-development-with-eclipse-ide/">http://www.techhamlet.com/2010/10/android-application-development-with-eclipse-ide/</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.ilpestifero.net/2011/03/23/sviluppare-per-android-su-ubuntu-setup/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>La tecnica del Pomodoro</title>
		<link>http://www.ilpestifero.net/2006/12/06/tecnica-del-pomodoro/</link>
		<comments>http://www.ilpestifero.net/2006/12/06/tecnica-del-pomodoro/#comments</comments>
		<pubDate>Wed, 06 Dec 2006 10:23:18 +0000</pubDate>
		<dc:creator>ilpestifero</dc:creator>
				<category><![CDATA[Eventi]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[agileday06]]></category>
		<category><![CDATA[metodologie agili]]></category>
		<category><![CDATA[tecnica pomodoro]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://www.ilpestifero.net/?p=164</guid>
		<description><![CDATA[Agile Day 2006: pomodori e xp...]]></description>
			<content:encoded><![CDATA[<p>Quest&#8217;anno, <a href="http://www.ilpestifero.net/2005/12/02/agile-day/">a differenza dello scorso</a>, sono riuscito ad andare all&#8217;<a href="http://www.agileday.it/">Agile Day</a>.<br />
Davvero una gran bella iniziativa, nella quale sono venuto a conoscenza di moltissime cose interessanti riguardo alle <a href="http://www.ilpestifero.net/2005/12/23/metodologie-agili/">metodologie agili</a>.<br />
E&#8217; stato molto bello ascoltare e confrontarsi al tempo stesso con tanti altri sviluppatori.<br />
L&#8217;idea degli open space è stata perfetta, la possibilità di continuare a discutere quanto sentito durante i vari talk mi ha infatti permesso di approndire quanto più mi interessava e conoscere persone davvero preparate e disponibili.<br />
Divertentissimo l&#8217;XP game, con tanto di <a href="http://www.fabiobeta.it/">coach</a>!</p>
<p><img src="/img/pomodoro.jpg" alt="Pachino o ramato?" class="floatnb" />La novità però, almeno per me, è stata &#8220;<strong>La tecnica del pomodoro</strong>&#8220;.<br />
L&#8217;idea alla base è quella di suddividere il tempo in pomodori, ognuno della durata di 25 minuti + 2/3 di pausa.<br />
Come prima cosa si scrivono su un foglio le varie attività da svolgere; in seconda battuta (e qui sta una delle principali difficoltà) ne si stima la durata in pomodori, disegnando n figure geometriche uguali a fianco di ognuna (es. <em>refactoring</em>: 0 0 0; ossia 3 pomodori). A questo punto si scelgono quelle da fare giorno per giorno (attività di pianificazione).<br />
<span id="more-164"></span><br />
Si inizia quindi con la prima. Ogni pomodoro (25 minuti) ci si ferma, ci si distrae per 2/3 minuti, lo si segna come svolto (barrandolo con una x), si ripunta il timer e via. Ogni 4 pomodori ci si ferma per un poco di più, 10/15 minuti circa, in modo da ricaricarsi.<br />
Se la stima è corretta dopo i pomodori previsti il lavoro è terminato; altrimenti o si è finito prima (e quindi si passa ad un&#8217;altra attività) oppure i pomodori non sono stati sufficienti ed allora, in base al lavoro svolto e a quello mancante si effettua una nuova stima, da segnare con una figura geometrica diversa dalla prima.<br />
Bisogna ridurre al minimo le interruzioni durante i pomodori. Se l&#8217;interruzione viene gestita velocemente il pomodoro è ancora buono, altrimenti il pomodoro è perso e non deve venire barrato.<br />
Per i dettagli vi rimando all&#8217;<a href="http://www.xplabs.it/fc2.html" title="La tecnica del pomodoro">ottimo paper</a> (che sto leggendo) di <a href="http://www.xplabs.it/">Francesco Cirillo</a>.<br />
Obiettivo è quello di organizzare meglio il lavoro, evitando di disperdere energie e di farsi prendere dall&#8217;ansia soprattutto con l&#8217;avvicinarsi delle scadenze.
</p>
<blockquote title="http://www.xplabs.it/fc2.html"><p>
La Tecnica del Pomodoro nasce con lobiettivo di utilizzare il tempo come un utile alleato per realizzare le proprie attività nel modo desiderato e consentire un continuo miglioramento nel proprio processo di lavoro o studio. [...]<br />
Tentando di confrontarsi con il tempo che passa, ci si sente inadeguati, oppressi, schiavi, vinti, ogni secondo di più. Si perde lo slancio vitale (3) che ci consente di realizzare attività: sono passate due ore e non ho ancora finito; sono passati due giorni e ancora non ho finito. Nei momenti di debolezza, lo scopo di realizzare attività tende a non essere più chiaro. [...]
</p></blockquote>
<p>Su flickr ci sono alcune foto dell&#8217;<a href="http://flickr.com/photos/tags/agileday06/">agile day 2006</a>.</p>
<div class="centrato"><img src="/img/pomodoro2.jpg" alt="Lo speech sul pomodoro... con il pomodoro in bella mostra" title="Lo speech sul pomodoro... con il pomodoro in bella mostra" /></div>
<hr />
<strong>Aggiornamento Novembre 2010</strong><br />
Per chi sviluppasse in ambiente Gnu/Linux, più precisamente utilizzando l&#8217;ambiente Gnome, ad esempio sotto Ubuntu, segnalo questa comoda applet per il pannello di Gnome attraverso cui gestire il tempo in pomodori: <a href="http://ftp.jstump.com/pub/pomodoro-applet/">http://ftp.jstump.com/pub/pomodoro-applet/</a>. Via <a href="http://www.ossblog.it/post/6970/pomodoro-applet">http://www.ossblog.it/post/6970/pomodoro-applet</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ilpestifero.net/2006/12/06/tecnica-del-pomodoro/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Metodologie Agili</title>
		<link>http://www.ilpestifero.net/2005/12/23/metodologie-agili/</link>
		<comments>http://www.ilpestifero.net/2005/12/23/metodologie-agili/#comments</comments>
		<pubDate>Fri, 23 Dec 2005 19:01:46 +0000</pubDate>
		<dc:creator>ilpestifero</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[agile day]]></category>
		<category><![CDATA[metodologie agili]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://www.ilpestifero.net/?p=103</guid>
		<description><![CDATA[Visto che non sono riuscito a partecipare all&#8217;agile day a causa di una noiossima influenza che mi ha tenuto bloccato a letto per 4 giorni, ho chiesto a milo di darci un resoconto dell&#8217;evento e delle sue impressioni. Non mi resta che augurarvi buona lettura e consigliarvi anche il documento di Massimiliano Bigatti per una [...]]]></description>
			<content:encoded><![CDATA[<p>Visto che non sono riuscito a partecipare all&#8217;<a href="http://www.agileday.it/">agile day</a> a causa di una noiossima influenza che mi ha tenuto bloccato a letto per 4 giorni, ho chiesto a<strong> milo</strong> di darci un resoconto dell&#8217;evento e delle sue impressioni.<br />
Non mi resta che augurarvi buona lettura e consigliarvi anche il documento di <a href="http://www.bigatti.it/">Massimiliano Bigatti</a> per una <a href="http://www.bigatti.it/documents/agile.pdf" title="Introduzione alle metodologie Agili, di Massimiliano Bigatti">introduzione alle metodologie agili</a> [pdf, 358kb ].<br />
<span id="more-103"></span></p>
<p>Ciao pestiferi!<br />
Non voglio infierire ulteriormente, ma secondo me vi siete persi un&#8217;ottima occasione per capire come le metodologie agili si concretizzano e quali benefici apportano allo sviluppo del software, nonché alla gestione e razionalizzazione dei processi produttivi e gestionali.</p>
<p>Per quanto mi riguarda fino a poco temo fa avevo un&#8217;idea piuttosto teorica delle metodologie agili, avevo leggiucchiato qua e la articoli presi sul web (refactoring, TDD, ecc&#8230;), poi ho iniziato con il libro di Kent Beck (Padre dell XP) Extreme Programming Explained che non sono ancora riuscito a finire: non so voi, ma  non riesco proprio a stare senza scrivere codice quando sento certe cose&#8230; </p>
<p>Beh, veniamo all&#8217;incontro.<br />
Dunque, si è tenuto all&#8217;interno di un teatro, i presenti erano circa ottanta il che dava idea di come questo tipo di approccio sia sentito a livello italiano&#8230;<br />
I primi ad intervenire sono stati i responsabili (team manager e coach) del team di sviluppo di Ferrari Sport, per intenderci quelli che la  domenica trasportano la loro server farm ai box dei circuiti di GP.<br />
Due tipi brillantissimi!<br />
Loro hanno esposto la loro esperienza di utilizzo delle metodologie agili ed il loro approccio all&#8217;XP.<br />
Tengo a sottolineare LORO in quanto non esiste un metodo valido per tutte le realtà; ognuno utilizza l&#8217;XP nel modo in cui essa riuscirà ad apportare i maggiori benefici al suo processo di lavoro.<br />
Sarebbe sbagliatissimo, nonché controproducente, pensare al raggiungimento dei principi di XP come una cosa fine a se stessa!<br />
Il loro team di programmatori è composto da 30 elementi; loro sviluppano tutto il software che va dal gestionale al supercalcolo e telemetrie; rilasciano una media di 50 versioni al mese! Lavorano su piattaforma Microsoft.</p>
<p>In ogni modo domani sera racconterò tutto per filo e per segno di persona al Pestifero: certe cose non si possono tenere solo per se!<br />
Mi permetto però di darvi in primis due dritte e poi concludo con degli estratti del discorso di Francesco Cirillo: massimo esponente nonché importatore dellXP in Italia; è stato allivo di Kent Beck <br />
Le dritte riguardano Ruby e Ruby On Rails, vi consiglio vivamente di darci unocchiata se vi capita: <a href="http://www.rubyonrails.org/">http://www.rubyonrails.org/</a> da lì andate sul <a href="http://wiki.rubyonrails.com/rails">wiki</a> e poi via!</p>
<p>Concludo anticipandovi che lXP è descritta attraverso dei principi individuati da K. Beck, uno dei quali mi è rimasto impresso maggiormente, forse perché senza saperlo lo praticavo già: consiste nel trasformare ogni problema in unopportunità; quindi avere dei problemi è fondamentale per riuscire poi a migliorarsi Anche qui ce ne sarebbe da dire.<br />
Ho buttato giù tutto di pugno, quindi scusate la (magari) non coerenza e litaliano, cho da lavorare adesso.<br />
Auguro a tutti un Buon Natale e Ste ci vediamo domani!</p>
<p><a href="http://www.pagodo.it">milo</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.ilpestifero.net/2005/12/23/metodologie-agili/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>La cattedrale, il bazaar e il kibbutz</title>
		<link>http://www.ilpestifero.net/2005/12/14/la-cattedrale-il-bazaar-e-il-kibbutz/</link>
		<comments>http://www.ilpestifero.net/2005/12/14/la-cattedrale-il-bazaar-e-il-kibbutz/#comments</comments>
		<pubDate>Wed, 14 Dec 2005 19:51:36 +0000</pubDate>
		<dc:creator>ilpestifero</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[bazaar]]></category>
		<category><![CDATA[cattedrale]]></category>
		<category><![CDATA[foss]]></category>
		<category><![CDATA[ingegneria software]]></category>
		<category><![CDATA[kibbutz]]></category>
		<category><![CDATA[monga]]></category>
		<category><![CDATA[raymond]]></category>

		<guid isPermaLink="false">http://www.ilpestifero.net/?p=98</guid>
		<description><![CDATA[La cattedrale, il bazaar e il kibbutz.
Come sviluppare software?
Che approccio seguire?]]></description>
			<content:encoded><![CDATA[<p><img src="/img/cathedral_bazaar_kibbutz.jpg" alt="La cattedrale e il bazaar (e il kibbutz)" class="float" /></p>
<p>Come sviluppare del (buon) software?<br />
E&#8217; una domanda alla quale l&#8217;<strong>ingegneria del software</strong> cerca di dare risposta da molto tempo, proponendo diversi cicli di vita del software.<br />
Riflettiamo sulle metafore di cattedrale, bazaar e kibbutz.</p>
<p><strong>Eric Raymond</strong> nell&#8217;oramai famoso saggio &#8220;<a href="http://www.apogeonline.com/openpress/doc/cathedral.html#uno">La cattedrale e il bazaar</a>&#8221; ha descritto il modello di sviluppo del software open source, nel quale il codice sorgente è disponibile e modificabile da tutti.<br />
<span id="more-98"></span><br />
Perché bazaar?</p>
<blockquote cite="http://www.apogeonline.com/openpress/doc/cathedral.html#uno" title="Citazione tratta da <a href="http://www.apogeonline.com/openpress/doc/cathedral.html" rel="nofollow">http://www.apogeonline.com/openpress/doc/cathedral.html</a>"><p>
Rimasi non poco sorpreso dallo stile di sviluppo proprio di Linus Torvalds  diffondere le release presto e spesso, delegare ad altri tutto il possibile, essere aperti fino alla promiscuità. Nessuna cattedrale da costruire in silenzio e reverenza.<br />
Piuttosto, la comunità Linux assomigliava a un grande e confusionario bazaar, pullulante di progetti e approcci tra loro diversi.
</p>
</blockquote>
<p>Le differenze principali di questo approccio, rispetto a quello &#8220;a cattedrale&#8221; utilizzato nel software proprietario sviluppato dalle aziende, sono proprio queste. Sebbene le risorse non siano ben definite, il planning venga fatto man mano e i co-sviluppatori non percepiscano uno stipendio, i vantaggi di questo approccio sono numerosi e sul lungo periodo destinato ad avere il sopravvento (in determinati contesti); la cosiddetta <a href="http://www.moonviewscientific.com/essays/software_lifecycle.htm">FOSS era</a>.<br />
Quali sono i vantaggi?</p>
<blockquote cite="Eric Raymond" title="i principali vantaggi del bazaar, di Eric Raymond">
<ul>
<li>Trattare gli utenti come co-sviluppatori è la strada migliore per ottenere rapidi miglioramenti del codice e debugging efficace.</li>
<li>Distribuisci presto. Distribuisci spesso. E presta ascolto agli utenti.</li>
<li>Se tratti i tuoi beta-tester come se fossero la tua risorsa più importante, essi risponderanno diventando la tua risorsa più importante; se ci sono abbastanza occhi, che cercano errori, gli errori diventano di poco conto</li>
<li>La cosa migliore, dopo l&#8217;avere buone idee, è riconoscere quelle che arrivano dagli utenti. Qualche volta sono le migliori.</li>
<li>molte teste funzionano inevitabilmente meglio di una sola.</li>
</ul>
</blockquote>
<p>Il resto lo trovate appunto nel saggio &#8220;<a href="http://www.apogeonline.com/openpress/doc/cathedral.html#uno">La cattedrale e il Bazaar</a>&#8220;.<br />
<br />
Purtroppo però (e per fortuna, per altri motivi e in altri contesti che non approfondirò ora) questo approccio non sempre è adatto.<br />
Il caso di Wikipedia ne è l&#8217;esempio.</p>
<blockquote cite="http://www.macitynet.it/macity/aA23243/index.shtml" title=" Citazione tratta da <a href="http://www.macitynet.it/macity/aA23243/index.shtml" rel="nofollow">http://www.macitynet.it/macity/aA23243/index.shtml</a>"><p>
i contenuti anonimi o pseudo-anonimi messi online sono alle volte un po&#8217; problematici. Prendono posizioni, censurano punti di vista, scrivono cose non veritiere
</p>
</blockquote>
<p>In questo contesto l&#8217;anonimato diventa un problema importante, al quale bisogna far fronte. O con degli accorgimenti o con un cambio alla base, un nuovo approccio, il <strong>kibbutz</strong>.</p>
<blockquote><p>Ma in realtà, rispetto anche ad altri modelli di sviluppo collaborativo come nel caso di Linux per quanto attiene alla tecnologia software, pare che invece manchi un modello di sviluppo basato su una autorità carismatica. Nel caso specifico, Linus Torvalds, ma non solo. E&#8217; probabilmente comune a molte comunità non solo la coesione ma anche il riconoscimento di una autorità morale.</p>
</blockquote>
<p><a href="http://homes.dico.unimi.it/~monga/">Mattia Monga</a>, un ricercatore del <a href="http://www.dico.unimi.it/">dico dell&#8217;università statale di Milano</a>, propone appunto la metafora del <a href="http://homes.dico.unimi.it/~monga/lib/oss-icse04.pdf">kibbutz, in relazione allo sviluppo del progetto Debian</a> (pdf, 54kb &#8211; eng).<br />
</p>
<p>Riferimenti:<br />
<a href="http://www.apogeonline.com/openpress/doc/cathedral.html">La cattedrale e il bazaar</a><br />
<a href="http://www.macitynet.it/macity/aA23243/index.shtml">Piccoli grandi problemi per l&#8217;enciclopedia libera</a><br />
<a href="http://homes.dico.unimi.it/~monga/lib/oss-icse04.pdf">Froom Bazaar to Kibbutz</a> (pdf, 54kb &#8211; eng)<br />
<a href="http://it.wikipedia.org/wiki/La_Cattedrale_e_il_Bazaar">Wikipedia &#8211; La cattedrale e il bazaar</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.ilpestifero.net/2005/12/14/la-cattedrale-il-bazaar-e-il-kibbutz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

