<?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>Simone Carletti&#039;s Blog &#187; Libri</title>
	<atom:link href="http://www.simonecarletti.it/blog/categories/libri/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.simonecarletti.it/blog</link>
	<description>Un piccolo spazio nel web con approfondimenti su programmazione, feed, motori di ricerca e marketing.</description>
	<lastBuildDate>Mon, 03 Oct 2011 14:40:00 +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>Libri Ruby on Rails in italiano</title>
		<link>http://www.simonecarletti.it/blog/2011/02/libri-ruby-on-rails-in-italiano/</link>
		<comments>http://www.simonecarletti.it/blog/2011/02/libri-ruby-on-rails-in-italiano/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 14:46:30 +0000</pubDate>
		<dc:creator>Simone Carletti</dc:creator>
				<category><![CDATA[Libri]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.simonecarletti.it/blog/?p=3391</guid>
		<description><![CDATA[Alcuni suggerimenti per chi sta cercando un libro in italiano per imparare Ruby on Rails.]]></description>
			<content:encoded><![CDATA[<p>Analizzando le statistiche di accesso a questo blog ho scoperto che moltissimi utenti sono alla ricerca di <strong>libri su Ruby e Ruby on Rails in italiano</strong>.</p>
<p>Non è quindi un caso che tra le pagine più viste ci sia la recensione del libro <a href="http://www.simonecarletti.it/blog/2009/02/libro-ruby-cookbook/">Ruby Cookbook con elementi di Rails</a>. Tuttavia, come scritto nel mio post, <strong>quel libro non è un libro per imparare Rails</strong>, bensì una collezione di ricette per alcuni problemi comuni.</p>
<p>In realtà, cari utenti, mettetevi il cuore in pace: <strong>non esiste un libro in italiano completo ed aggiornato per imparare Ruby on Rails</strong>. Il framework è in continuo e costante sviluppo ed i libri italiani sono spesso traduzioni datate di edizioni in inglese.</p>
<p>Se volete imparare Ruby on Rails, vi consiglio il libro <a href="http://www.simonecarletti.it/blog/2007/11/libro-agile-web-development-with-rails/">Agile Development with Rails</a> — di cui è uscito da poco una nuova edizione aggiornata all&#8217;ultima versione di Rails — oppure <a href="http://www.simonecarletti.it/blog/out/amzit-railsway">The Rails Way</a> — se preferite un approccio meno learn by example.</p>
<p class="textcenter"><a href="http://www.simonecarletti.it/blog/out/amzit-railsway"><img class="size-medium" title="Libro The Rails 3 Way" src="http://share.weppos.net/simonecarletti/book-addison-rails3way-20110817-213302.png" alt="Libro The Rails 3 Way" height="250" /></a> <a href="http://www.simonecarletti.it/blog/out/amzit-pragrails"><img class="size-medium" title="Libro Agile Development with Rails 4" src="http://share.weppos.net/simonecarletti/book-pragprog-rails4-20110817-213625.png" alt="Libro Agile Development with Rails 4" height="250" /></a></p>
<p>Entrambi i libri sono in inglese ma avrete la certezza di studiare con un&#8217;edizione aggiornata all&#8217;ultima versione di Rails.<span id="more-3391"></span></p>
<div id="kindle-reader">
<h3>Kindle Preview</h3>
</div>
<p><script type="text/javascript" src="http://kindleweb.s3.amazonaws.com/app/KindleReader-min.js"></script><script type="text/javascript">// <![CDATA[
                         KindleReader.LoadSample({containerID: 'kindle-reader', asin: 'B004G606IK', width: '600', height: '606', assoctag: 'simonecarletti-20'});
// ]]&gt;</script></p>
<p>Related posts:<ol>
<li><a href='http://www.simonecarletti.it/blog/2009/02/libro-ruby-cookbook/' rel='bookmark' title='Libro Ruby Cookbook con elementi di Rails'>Libro Ruby Cookbook con elementi di Rails</a></li>
<li><a href='http://www.simonecarletti.it/blog/2007/11/libro-agile-web-development-with-rails/' rel='bookmark' title='Libro Agile Web Development with Rails 3'>Libro Agile Web Development with Rails 3</a></li>
<li><a href='http://www.simonecarletti.it/blog/2006/09/hosting-gratuito-per-ruby-on-rails/' rel='bookmark' title='Hosting gratuito per Ruby on Rails'>Hosting gratuito per Ruby on Rails</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecarletti.it/blog/2011/02/libri-ruby-on-rails-in-italiano/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La storia del vostro cognome in vendita su Amazon</title>
		<link>http://www.simonecarletti.it/blog/2009/08/la-storia-del-vostro-cognome-in-vendita-su-amazon/</link>
		<comments>http://www.simonecarletti.it/blog/2009/08/la-storia-del-vostro-cognome-in-vendita-su-amazon/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 15:46:15 +0000</pubDate>
		<dc:creator>Simone Carletti</dc:creator>
				<category><![CDATA[Libri]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[carletti]]></category>
		<category><![CDATA[cognomi]]></category>

		<guid isPermaLink="false">http://www.simonecarletti.it/blog/?p=2760</guid>
		<description><![CDATA[Su Amazon sono disponibili oltre 300.000 libri specifici per la maggior parte dei cognomi, inclusi numerosi cognomi italiani.]]></description>
			<content:encoded><![CDATA[<p>Non sono mai stato un patito delle genealogia, ma quando ho scoperto in vendita su Amazon il libro <a href="http://amzn.to/acom-book-carletti">The Carletti Name in history</a> è stato molto difficile resistere.</p>
<p><a href="http://amzn.to/acom-book-carletti"><img class="aligncenter size-medium wp-image-2761" title="The Carletti Name in History" src="http://www.simonecarletti.it/blog/wp-content/uploads/2009/08/51PM1k+3TEL._SS500_-400x400.jpg" alt="The Carletti Name in History" width="400" height="400" /></a></p>
<p><span id="more-2760"></span>Per diversi mesi ho tenuto il libro nella wishlist. Da diverso tempo, infatti, preferisco acquistare su Amazon.co.uk complice un cambio sterlina-euro particolarmente favorevole e tempi di spedizione di un paio di giorni, in confronto ai tempi di spedizione biblici di Amazon.com. Sfortunatamente, la <a href="http://amzn.to/auk-book-carletti">versione anglosassone</a> costa quasi il doppio così, approfittando di un codice sconto che stagnava nel mio account da oltre 6 mesi, ho completato l&#8217;ordine.</p>
<p>Ci vorranno almeno una 30tina di giorni prima che il pacchetto arrivi a destinazione, nel frattempo attenderò la spedizione di Amazon.co.uk dove mi sono appena comprato la <a href="http://bit.ly/c5gJut">custodia subacquea per la mia digitale Canon</a> risparmiando almeno una 50tina di euro sul prezzo in Italia.</p>
<p>Se il libro vi incuriosisce, cercate il vostro cognome su <a href="http://amzn.to/acom-book-carletti">Amazon.com</a> o <a href="http://amzn.to/auk-book-carletti">Amazon.co.uk</a>. L&#8217;archivio contiene numerosissimi cognomi italiani.</p>
<p>Related posts:<ol>
<li><a href='http://www.simonecarletti.it/blog/2007/09/piccolo-pezzo-di-storia-active-server-pages-30-di-apogeo/' rel='bookmark' title='Piccolo pezzo di storia: Active Server Pages 3.0 di Apogeo'>Piccolo pezzo di storia: Active Server Pages 3.0 di Apogeo</a></li>
<li><a href='http://www.simonecarletti.it/blog/2007/12/pragmatic-programmers-addicted/' rel='bookmark' title='Pragmatic programmers addicted'>Pragmatic programmers addicted</a></li>
<li><a href='http://www.simonecarletti.it/blog/2006/12/benedetto-arriva-50esimo-e-vince-il-premio-trackback/' rel='bookmark' title='Benedetto arriva 50esimo&#8230;  e vince il premio trackback!'>Benedetto arriva 50esimo&#8230;  e vince il premio trackback!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecarletti.it/blog/2009/08/la-storia-del-vostro-cognome-in-vendita-su-amazon/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Libro Ruby Cookbook con elementi di Rails</title>
		<link>http://www.simonecarletti.it/blog/2009/02/libro-ruby-cookbook/</link>
		<comments>http://www.simonecarletti.it/blog/2009/02/libro-ruby-cookbook/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 08:10:50 +0000</pubDate>
		<dc:creator>Simone Carletti</dc:creator>
				<category><![CDATA[Libri]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[oreilly]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[recensioni]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tecniche nuove]]></category>

		<guid isPermaLink="false">http://www.simonecarletti.it/blog/?p=2540</guid>
		<description><![CDATA[Recensione del libro Ruby Cookbook con elementi di Rails, una raccolta di soluzioni pronte all'uso per programmare in Ruby.]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-2542" title="Ruby Cookbook con elementi di Rails" src="http://www.simonecarletti.it/blog/wp-content/uploads/2009/02/978-88-481-1981-8-150x150.jpg" alt="Ruby Cookbook con elementi di Rails" width="150" height="150" /><strong><a href="http://www.simonecarletti.it/blog/out/amzit-rubycook">Ruby Cookbook con elementi di Rails</a></strong> è una raccolta di ricette, soluzioni a problemi comuni e frammenti di codice per la programmazione in Ruby. Il libro, scritto da Lucas Carlson e Leonard Richardson, è edito da <em>O&#8217;Reilly</em> e disponibile in italiano in un&#8217;edizione distribuita da <em>Tecniche Nuove</em>.</p>
<p>Il libro contiene <strong>soluzioni a problemi comuni nello sviluppo Ruby</strong>, suddivise in 17 capitoli a seconda dell&#8217;argomento. Per ogni soluzione è descritto il problema, la soluzione immediata completa di codice sorgente copia incolla ed una spiegazione dettagliata molto utile a chi desidera imparare invece di copiare pedestremente. <em>Ruby Cookbook</em> prende in esame tutti i principali temi di Ruby ed include un intero capitolo dedicato al framework Rails.</p>
<p><span id="more-2540"></span><em>Ruby Cookbook con elementi di Rails</em> è uno dei pochi libri di programmazione in italiano presenti nella mia biblioteca personale. Nessun motivo in particolare, in realtà, non ricordo neppure quando acquistai questo libro o dove. Credo sia uno dei primi libri comprati su Ruby, senza dubbio almeno 3 anni fa prima che cominciassi a lavorarci quotidianamente.</p>
<p>Le mie considerazioni seguenti sono quindi squisitamente riferite alla versione italiana, anche se quella inglese è pressoché identica. Anzi, devo dire che <strong>la traduzione italiana è decisamente accurata e fedele all&#8217;originale</strong>. Un lavoro di qualità, considerato che spesso si leggono certi adattamenti che farebbero drizzare anche i peli sulle unghie.</p>
<h2>Struttura del Libro</h2>
<p>Come anticipato, il libro si suddivide in ben 17 capitoli. Eccoli nel dettaglio:</p>
<ol>
<li>Le stringhe di testo</li>
<li>I numeri</li>
<li>Data e ora</li>
<li>Array</li>
<li>Hash</li>
<li>File e directory</li>
<li>Blocchi di codice ed iterazione</li>
<li>Oggetti e classi</li>
<li>Moduli e spazi dei nomi</li>
<li>Riflessione e metaprogrammazione</li>
<li>XML e HTML</li>
<li>Immagini ed altri formati di file</li>
<li>Database e persistenza</li>
<li>Servizi internet</li>
<li>Sviluppo Web: Ruby on Rails</li>
<li>Servizi Web e programmazione distribuita</li>
<li>Amministrazione del sistema</li>
</ol>
<p>Ciascun capitolo si concentra su un aspetto specifico della programmazione in Ruby. I capitoli a mio avviso più interessanti sono contenuti nella seconda metà del libro. Credo che temi come riflessione e metaprogrammazione, formati di file e servizi internet possano essere più appropriati ad un libro di ricette rispetto ad argomenti base come stringhe ed array.</p>
<h2>Impressioni sul libro</h2>
<p><strong>Non amo i libri di ricette</strong>, a meno che non siano di cucina: ritengo sia un modo poco efficace per imparare un linguaggio o affrontarne i problemi. Inoltre, credo che i libri di questo genere siano oramai del tutto superati da internet. Difficile trovare qualcuno che, di fronte ad un improvviso problema con un algoritmo, preferisca sfogliare un libro di ricette invece che affidarsi ad una ricerca al volo su internet. Blog, forum, gruppi di discussione sono un&#8217;inestimabile fonte di soluzioni.</p>
<p>Un libro come <em>Ruby Cookbook</em> è probabilmente <strong>utile per farsi un&#8217;idea delle potenzialità di Ruby</strong>, tenere la mente allenata cercando di <strong>rispondere ai problemi prima di guardare la soluzione</strong> ma è assai improbabile che possano offrire una soluzione al momento in cui il problema si verificherà&#8230; ammesso e non concesso che non abbiate il libro sotto mano e non vi ricordiate in quel momento di una delle decine di ricette pubblicate.</p>
<p>A questo si aggiunge che il libro è piuttosto datato. Stiamo parlando di un libro del 2006, pubblicato in italiano nel 2007. Il capitolo su Rails è del tutto obsoleto, il capitolo sulle Gem preistorico, la maggior parte delle ricette sui tipi di dati primitivi eccessivamente basilare.<br />
Ancora una volta, salverei invece i capitoli sui tipi di dati ed argomenti avanzati come Thread, la manipolazione di immagini e l&#8217;interazione con protocolli sono ancora un argomento meno diffuso.</p>
<h2>Requisiti</h2>
<p><em>Ruby Cookbook</em> <strong>non è un libro per imparare a programmare in Ruby</strong>. Non è neanche un libro per risolvere i problemi quotidiani nella programmazione in Ruby. Per apprezzare al meglio questo libro è quindi <strong>consigliata almeno un&#8217;esperienza base nella programmazione in Ruby</strong>.</p>
<p>Non è necessario leggere il libro in un ordine particolare. Piuttosto, consiglio di digerirlo poco alla volta, <strong>qualche ricetta al giorno</strong> senza cercare di memorizzare le soluzioni ma di studiarne il metodo. In questo modo sarà più facile mettere in pratica gli insegnamenti acquisiti nel caso si presenti un problema simile.</p>
<p>Gli argomenti trattati nel libro sono numerosi. Prendetevi il tempo necessario a documentarvi sulle nuove librerie segnalate, a provare gli esempi forniti e non abbiate fretta ad affrontare capitoli su argomenti di Ruby che ancora non conoscete.</p>
<h2>In conclusione</h2>
<p><em>Ruby Cookbook con elementi di Rails</em> non è proprio dubbio uno dei miei libri preferiti e, al momento, difficilmente lo consiglierei principalmente perché diverse sezioni soffrono di 3 anni di evoluzione del linguaggio.</p>
<h2>Dove comprare Ruby Cookbook con elementi di Rails</h2>
<p>Potete acquistare una copia cartacea su <a href="http://www.simonecarletti.it/blog/out/amzit-rubycook">Amazon.it</a>.</p>
<p>Related posts:<ol>
<li><a href='http://www.simonecarletti.it/blog/2011/02/libri-ruby-on-rails-in-italiano/' rel='bookmark' title='Libri Ruby on Rails in italiano'>Libri Ruby on Rails in italiano</a></li>
<li><a href='http://www.simonecarletti.it/blog/2007/11/libro-agile-web-development-with-rails/' rel='bookmark' title='Libro Agile Web Development with Rails 3'>Libro Agile Web Development with Rails 3</a></li>
<li><a href='http://www.simonecarletti.it/blog/2008/11/libro-design-patterns-in-ruby/' rel='bookmark' title='Libro Design Patterns in Ruby'>Libro Design Patterns in Ruby</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecarletti.it/blog/2009/02/libro-ruby-cookbook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Libro Design Patterns in Ruby</title>
		<link>http://www.simonecarletti.it/blog/2008/11/libro-design-patterns-in-ruby/</link>
		<comments>http://www.simonecarletti.it/blog/2008/11/libro-design-patterns-in-ruby/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 09:38:24 +0000</pubDate>
		<dc:creator>Simone Carletti</dc:creator>
				<category><![CDATA[Libri]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[addison wesley]]></category>
		<category><![CDATA[design pattern]]></category>
		<category><![CDATA[pragmatic programmers]]></category>
		<category><![CDATA[recensioni]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.simonecarletti.it/blog/2008/11/libro-design-patterns-in-ruby/</guid>
		<description><![CDATA[Recensione del libro Design Patters in Ruby, dedicato all'implementazione dei Design Pattern nel linguaggio di programmazione Ruby.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.simonecarletti.it/blog/out/amzit-rubypatterns"><img class="alignleft size-thumbnail" title="Libro Design Patterns in Ruby" src="http://share.weppos.net/simonecarletti/book-addison-rubypatterns-20110817-214258.png" alt="Libro Design Patterns in Ruby" width="125" /></a>Pubblicato quest&#8217;anno, <strong>Design Patters in Ruby</strong> è il primo libro interamente dedicato all&#8217;<strong>implementazione in Ruby dei principali Design Pattern</strong> definiti dalla Gang of Four (GoF).</p>
<p><a href="http://www.simonecarletti.it/blog/out/amzit-rubypatterns">Design Patterns in Ruby</a>, scritto da <a title="Technology As If People Mattered : Weblog" href="http://www.russolsen.com/">Russ Olsen</a>, è edito dalla Addison-Wesley ed è parte della <strong>Professional Ruby Series</strong> gestita da <a title="Obie Fernandez" href="http://obiefernandez.com/">Obie Fernandez</a>. Questa serie è senza dubbio sinonimo di qualità e garanzia per chi è alla ricerca di un <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2Fs%3Fie%3DUTF8%26x%3D0%26ref%255F%3Dnb%255Fss%255Fgw%26y%3D0%26field-keywords%3DAddison-Wesley%2520Professional%2520Ruby%2520Series%26url%3Dsearch-alias%253Daps&amp;tag=simonecarletti-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=390957">libro su Ruby o Rails</a>.</p>
<p>Rispetto alla media delle mie ultime letture, questa pubblicazione è stata decisamente molto meno impegnativa. Ho consumato il libro in non più di una settimana, dedicando un&#8217;oretta al giorno in tram. A patto che abbiate una certa dimestichezza con <strong>Ruby</strong> ed <strong>Object Oriented Programming</strong>, <em>Design Patterns in Ruby</em> è una lettura scorrevole e coinvolgente.</p>
<p><span id="more-758"></span></p>
<h2>Requisiti</h2>
<p>Stando alla prefazione dell&#8217;autore, per leggere questo libro non è necessaria alcuna particolare competenza né di Ruby né di design pattern. Tuttavia, è consigliata una certa familiarità con le dinamiche dell&#8217;object oriented programming.</p>
<p>Confesso di trovarmi parzialmente in disaccordo. <strong>Affrontare la lettura di questo libro senza una certa dimestichezza con Ruby potrebbe rivelarsi controproducente</strong>, considerando che alcuni design pattern utilizzano caratteristiche come la metaprogrammazione, la riflessione, i moduli, i simboli, i Mixin, blocchi e procedure.<br />
Mentre i primi possono essere aspetti comuni a molti linguaggi, a partire dai simboli in avanti si entra in un territorio tipico di Ruby e pochi altri linguaggi.</p>
<p>Il secondo capitolo del libro offre una breve introduzione a Ruby, ma questi 30 minuti di lettura sono nulla paragonato a qualche mese di programmazione pratica o ad una lettura di qualche pubblicazione specifica, come ad esempio l&#8217;eccellente <a title="Libro Learn to Program" href="http://www.simonecarletti.it/blog/2008/02/libro-learn-to-program/">Learn to Program</a> o l&#8217;<a title="Libro Programming Ruby" href="http://www.simonecarletti.it/blog/2007/10/libro-programming-ruby/">antologia Programming Ruby</a>.</p>
<p>Confermo invece l&#8217;affermazione riguardo ad eventuali competenze sui design pattern. Questo libro affronta i principali design pattern sia in forma teorica sia in forma pratica, colmando così eventuali lacune del lettore su argomenti specifici.</p>
<h2>Struttura del Libro</h2>
<p>Il libro è diviso in tre parti.</p>
<p>La prima parte, <strong>Patterns and Ruby</strong>, è una veloce introduzione ai design patterns ed al linguaggio di programmazione Ruby. Come già anticipato, non fate troppo affidamento al secondo capitolo dato che non potrà mai fornirvi tutte le basi necessarie per entrare nell&#8217;ottica di un linguaggio particolare come Ruby.</p>
<p>La seconda parte, <strong>Patterns in Ruby</strong>, è il cuore del libro. Ogni capitolo affronta uno dei diversi pattern originariamente discussi dalla GoF, riportando una breve introduzione, esempi pratici di implementazione in Ruby ed alcuni esempi reali di utilizzo, prendendo spunto da librerie Ruby famose come <code>Rails</code> e <code>URI</code>. Al termine di ogni capitolo, un paragrafo riassuntivo riepiloga le principali caratteristiche del design pattern trattato.</p>
<p>La terza parte, <strong>Patterns for Ruby</strong>, prende in considerazione tre pattern non inclusi nel libro originale ma emersi con l&#8217;introduzione e lo sviluppo del linguaggio Ruby.</p>
<h2>Design Pattern discussi</h2>
<p>Questa è la lista dei design pattern trattati nel libro:</p>
<ul>
<li>Template</li>
<li>Strategy</li>
<li>Observer</li>
<li>Composite</li>
<li>Iterator</li>
<li>Commands</li>
<li>Adapter</li>
<li>Proxy</li>
<li>Decorator</li>
<li>Singleton</li>
<li>Factory</li>
<li>Builder</li>
<li>Interpreter</li>
</ul>
<p>Questi invece i pattern specifici per Ruby trattati nel terzo capitolo:</p>
<ul>
<li>Domain-Specific Language (DSL)</li>
<li>Meta-Programming</li>
<li>Convention Over Configuration</li>
</ul>
<h2>In conclusione</h2>
<p>Ancora una volta, la Addison-Wesley e la Professional Ruby Serie non ha tradito le aspettative.</p>
<p><em>Design Patterns in Ruby</em> <strong>è una lettura assolutamente consigliata</strong> per i programmatori che desiderano ampliare le proprie competenze di sviluppo in Ruby e <strong>portare le proprie capacità ad un livello ancora più professionale</strong>. I design patterns sono una soluzione professionale ai problemi più comuni legati allo sviluppo di software e dovrebbero essere parte del bagaglio culturale di ogni sviluppatore.</p>
<p>Russ Olsen ha saputo scrivere una pubblicazione facilmente leggibile, fluida e scorrevole. L&#8217;organizzazione del libro permette la lettura di singoli capitoli anche a distanza di tempo. L&#8217;unica nota dolente è il prezzo, decisamente più elevato rispetto alla media dei libri simili.</p>
<h2>Dove comprare Design Patterns in Ruby</h2>
<p>Potete acquistare una copia cartacea o Kindle su <a href="http://www.simonecarletti.it/blog/out/amzit-rubypatterns">Amazon.it</a>, <a href="http://www.simonecarletti.it/blog/out/amzuk-rubypatterns">Amazon.co.uk</a> o <a href="http://www.simonecarletti.it/blog/out/amzcom-rubypatterns">Amazon.com</a>.</p>
<div id="kindle-reader">
<h3>Kindle Preview</h3>
</div>
<p><script type="text/javascript" src="http://kindleweb.s3.amazonaws.com/app/KindleReader-min.js"></script><script type="text/javascript">// <![CDATA[
               KindleReader.LoadSample({containerID: 'kindle-reader', asin: 'B0010SEN1S', width: '600', height: '629', assoctag: 'simonecarletti-20'});
// ]]&gt;</script></p>
<p>Related posts:<ol>
<li><a href='http://www.simonecarletti.it/blog/2008/07/libro-interface-oriented-design/' rel='bookmark' title='Libro Interface Oriented Design'>Libro Interface Oriented Design</a></li>
<li><a href='http://www.simonecarletti.it/blog/2007/10/libro-programming-ruby/' rel='bookmark' title='Libro Programming Ruby 1.9'>Libro Programming Ruby 1.9</a></li>
<li><a href='http://www.simonecarletti.it/blog/2009/02/libro-ruby-cookbook/' rel='bookmark' title='Libro Ruby Cookbook con elementi di Rails'>Libro Ruby Cookbook con elementi di Rails</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecarletti.it/blog/2008/11/libro-design-patterns-in-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Libro Pragmatic Version Control Using Git</title>
		<link>http://www.simonecarletti.it/blog/2008/11/libro-pragmatic-version-control-using-git/</link>
		<comments>http://www.simonecarletti.it/blog/2008/11/libro-pragmatic-version-control-using-git/#comments</comments>
		<pubDate>Sat, 01 Nov 2008 18:09:34 +0000</pubDate>
		<dc:creator>Simone Carletti</dc:creator>
				<category><![CDATA[Libri]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[pragmatic programmers]]></category>
		<category><![CDATA[recensioni]]></category>

		<guid isPermaLink="false">http://www.simonecarletti.it/blog/2008/11/libro-pragmatic-version-control-using-git/</guid>
		<description><![CDATA[Recensione del libro Pragmatic Version Control Using Git dedicato al software di controllo delle versioni inventato da Linus Torvalds.]]></description>
			<content:encoded><![CDATA[<p><a href="http://bit.ly/ait-book-tsgit"><img class="alignleft size-thumbnail wp-image-2747" title="Copertina Libro Pragmatic Version Control using Git" src="http://www.simonecarletti.it/blog/wp-content/uploads/2008/11/tsgit-150x150.jpg" alt="Copertina Libro Pragmatic Version Control using Git" width="150" height="150" /></a> <strong><a href="http://bit.ly/ait-book-tsgit">Pragmatic Version Control Using Git</a></strong> è l&#8217;ultima pubblicazione sfornata da <em>Pragmatic Bookshelf</em> che, dopo a <em>Pragmatic Version Control Using CVS</em> e <em>Pragmatic Version Control Using Subversion</em>, abbraccia il campo dei <acronym title="Distributed Version Control Systems">DVCS</acronym> pubblicando questo libro dedicato a <a title="Git - Fast Version Control System" href="http://git.or.cz/">Git</a>.</p>
<p>Per chi non lo conoscesse, <strong>Git è un sistema di controllo delle versioni</strong> così come <a title="Strumenti di sviluppo: Subversion (SVN)" href="http://www.simonecarletti.it/blog/2007/03/strumenti-di-sviluppo-subversion-svn/">Subversion</a>. In realtà, sebbene lo scopo finale sia comune, l&#8217;<strong>architettura di Git differisce alla base rispetto a Subversion</strong> poiché si tratta di un <strong>sistema distribuito</strong> che non necessita di far capo ad un repository principale. Ogni copia del repository, in gergo <em>clone</em>, è a tutti gli effetti un repository completo che include l&#8217;intera cronologia così come <em>log</em>, <em>branch</em> e quan&#8217;altro.</p>
<p><em>Pragmatic Version Control using Git</em> si propone come una <strong>guida a diversi aspetti di Git</strong> che spaziano dall&#8217;apprendimento delle basi del funzionamento fino all&#8217;integrazione con strumenti di terze parti, passando per la creazione, gestione ed amministrazione di repository Git.</p>
<p><strong>In Git le branch costituiscono uno degli elementi essenziali</strong>: non manca quindi un capitolo interamente dedicato aall&#8217;approfondimento di questo concetto che include sia le competenze tecniche essenziali per lavorare con le branch, sia nozioni di project management utili a comprendere quando e come dirottare lo sviluppo di un prodotto verso un ramo parallelo.</p>
<p><span id="more-732"></span></p>
<h2>Confessa, non l&#8217;hai letto!</h2>
<p>La pubblicazione del libro è estremamente recente e qualcuno di voi si potrebbe chiedere come sia possibile che io l&#8217;abbia già letto. Anzi, <a href="http://bit.ly/ait-book-tsgit">stando ad Amazon.com</a>, la versione definitiva del libro non è ancora stata pubblicata.</p>
<p>Per abitudine, <strong>su questo blog ho sempre pubblicato fino ad ora recensione di libri che ho sfogliato personalmente</strong> e questo vale anche per <em>Pragmatic Version Control Using Git</em>. Ho cominciato ad usare Git già qualche mese prima che la <em>Pragmatic Bookshelf</em> pre-annunciasse la disponibilità del libro e, non appena possibile, mi sono precipitato ad acquistarne la beta in Pdf.</p>
<p>Ho assistito alla scrittura del libro fin dall&#8217;inizio, quando ancora era presente poco più che qualche capitolo.<br />
E&#8217; vero, in un certo senso è come sbirciare un regalo prima del compleanno, ma non ho saputo resistere. Non appena pubblicato, riceverò una versione cartacea che sarò bel lieto di conservare in libreria.</p>
<p>Questo mi ha permesso di preparare questa recensione con adeguato anticipo ed arricchirla con alcune considerazioni su capitoli e aneddoti pre-release.</p>
<h2>Struttura del libro</h2>
<p>Il libro è organizzato in due macro parti: <strong>Welcome to the Distributed World</strong> e <strong>Everyday Gi</strong>t.</p>
<p>La prima parte contiene alcuni capitoli d&#8217;<strong>introduzione ai software di controllo delle versioni distribuiti</strong>. L&#8217;autore, <a href="http://www.travisswicegood.com/">Travis Swicegood</a>, analizza le caratteristiche alla base di questi prodotti accentuando i vantaggi rispetto ai tradizionali sistemi centralizzati come Subversion e CVS.</p>
<p>La seconda parte rappresenta invece il cuore del libro. Oltre 10 capitoli interamente dedicati a Git, <strong>dai comandi base fino all&#8217;interazione evoluta</strong>.<br />
I temi affrontati includono:</p>
<ul>
<li>Creazione ed amministrazione di repository</li>
<li>Utilizzo consapevole ed efficace di branch e tag</li>
<li>Esecuzione di merge tra branch differenti, con analisi delle varianti cherry-pick e squash</li>
<li>Gestione e risoluzione dei conflitti</li>
<li>Organizzazione di più repository ed integrazione di un sistema decentralizzato all&#8217;interno di un workflow aziendale strutturato</li>
<li>Installazione ed amministrazione di Git su server remoti</li>
<li>Interazione con repositori remoti</li>
<li>Analisi e consultazione della cronologia delle revisioni</li>
<li>Migrazione a Git, con particolare riferimento all&#8217;importazione di repository CVS e Subversion</li>
</ul>
<h2>Non solo tecnicismi</h2>
<p>Una delle caratteristiche che più ho apprezzato di questo libro è la capacità di miscelare in ogni capitolo il <strong>giusto quantitativo di tecnicismi con esempi e nozioni di organizzazione</strong>. Git è uno strumento molto potente. Conoscere a memoria tutti i comandi non è sufficiente per apprezzarne tutte le caratteristiche. Per sfruttare al meglio Git è necessario sapere quando usare una caratteristica piuttosto che un&#8217;altra, quando organizzare la struttura con un repository intermedio ed in che modo.</p>
<p>Questo libro <strong>affronta l&#8217;uso di Git in modo globale</strong>. Non si limita ad elencare e commentare i comandi ma ne dimostra l&#8217;efficacia corredando ogni sezione da elementi di project management. Questa caratteristica espande il target del libro che può così spaziare da chi desidera conoscere l&#8217;uso di Git a chi già ne conosce i comandi ma non ha mai beneficiato di una formazione mentale sul corretto uso del software.</p>
<h2>Git non è semplice</h2>
<p>Chiunque vi dirà che &#8220;ad imparare Git ci vuole un attimo&#8221;, a mio avviso, pecca di presunzione. Conoscere a memoria uno o cento comandi è banale ma conoscere Git non è semplice, utilizzare Git non è immediato. La curva di apprendimento di Git è notevolmente più lunga di altri strumenti come ad esempio Subversion.</p>
<p>Il motivo è da ricondurre sia alla natura distribuita del software sia alle caratteristiche del software stesso. Potrebbe sembrare un controsenso ma apprendere l&#8217;uso di un sistema distribuito è tendenzialmente più complesso di un sistema centralizzato poiché a più potere corrispondono più funzioni e potenzialmente più problemi dedicati alla gestione del repository. Inoltre, paragonato ad altri sistemi distribuiti come Mercurial, la complessità di Git è maggiore e riconducibile ad una filosofia di sviluppo strettamente legata al mondo Linux da cui proviene.</p>
<p>Ne consegue che <strong>la lettura di questo libro, in alcuni capitoli, non è molto fluida</strong>. Sebbene Travis Swicegood abbia tentato di esporre al meglio l&#8217;argomento, in alcuni casi sono necessarie anche due o tre letture di una sezione per assimilarne al meglio il contenuto.</p>
<h2>In conclusione</h2>
<p>Come anticipato, <em><a href="http://bit.ly/ait-book-tsgit">Pragmatic Version Control using Git</a></em> è una lettura consigliata sia per chi desidera avvicinarsi a Git, sia per chi già lo conosce ma sente l&#8217;esigenza di utilizzarlo in modo efficace ed efficiente.<br />
E&#8217; probabilmente una delle poche risorse complete sull&#8217;argomento in grado di offire una panoramica dalle basi alle funzionalità più evolute.</p>
<p>Gli utenti che provengono da altri SCM apprezzeranno senza dubbio i capitoli più discorsivi che offrono molto spesso confronti obiettivi con altri strumenti, in primo luogo Subversion. Agli utenti completamente a digiuno di SCM consiglio, prima della lettura, la visione dello <a title="Git | PeepCode Screencasts for Ruby on Rails Developers" href="http://peepcode.com/products/git">screencast su Git</a> in vendita su Peepcode.</p>
<p>Dopo Git, Subversion e CVS spero che arrivi presto il momento di una pubblicazione dedicata a <a title="Mercurial - Mercurial" href="http://www.selenic.com/mercurial/">Mercurial</a>.</p>
<h2>Dove comprare Design Patterns in Ruby</h2>
<p>Potete acquistare una copia cartacea su <a href="http://bit.ly/ait-book-tsgit">Amazon.it</a>, <a href="http://amzn.to/auk-book-tsgit">Amazon.co.uk</a> o <a href="http://amzn.to/acom-book-tsgit">Amazon.com</a>.</p>
<p>Related posts:<ol>
<li><a href='http://www.simonecarletti.it/blog/2007/12/pragmatic-programmers-addicted/' rel='bookmark' title='Pragmatic programmers addicted'>Pragmatic programmers addicted</a></li>
<li><a href='http://www.simonecarletti.it/blog/2009/02/passare-da-svn-a-git/' rel='bookmark' title='Passare da SVN a Git'>Passare da SVN a Git</a></li>
<li><a href='http://www.simonecarletti.it/blog/2008/02/libro-learn-to-program/' rel='bookmark' title='Libro Learn to Program'>Libro Learn to Program</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecarletti.it/blog/2008/11/libro-pragmatic-version-control-using-git/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Libro Interface Oriented Design</title>
		<link>http://www.simonecarletti.it/blog/2008/07/libro-interface-oriented-design/</link>
		<comments>http://www.simonecarletti.it/blog/2008/07/libro-interface-oriented-design/#comments</comments>
		<pubDate>Sun, 06 Jul 2008 17:22:38 +0000</pubDate>
		<dc:creator>Simone Carletti</dc:creator>
				<category><![CDATA[Libri]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[interfacce]]></category>
		<category><![CDATA[pragmatic programmers]]></category>
		<category><![CDATA[recensioni]]></category>

		<guid isPermaLink="false">http://www.simonecarletti.it/blog/2008/07/libro-interface-oriented-design/</guid>
		<description><![CDATA[Recensione del libro Interface Oriented Design edito da Pragmatic Bookshelf (The Pragmatic Programmers).]]></description>
			<content:encoded><![CDATA[<p><a href="http://bit.ly/ait-book-kpiod"><img class="alignleft size-thumbnail wp-image-2728" title="Copertina Libro Interface Oriented Design" src="http://www.simonecarletti.it/blog/wp-content/uploads/2007/12/51NYNPQM37L._SS500_-150x150.jpg" alt="Copertina Libro Interface Oriented Design" width="150" height="150" /></a>Dopo una serie di letture una più gustosa dell&#8217;altra, doveva arrivare prima o poi il momento di un libro che non suscitasse quell&#8217;interesse che mi sarei aspettato.</p>
<p>Devo dire che, fin dall&#8217;inizio, l&#8217;incontro con <a href="http://bit.ly/ait-book-kpiod">Interface Oriented Design: With Patterns (Pragmatic Programmers)</a> non è stato tra i più felici. Lo acquistai a dicembre, in un ordine con altri classici come <a title="Libro Learn to Program - Simone Carletti's Blog" href="http://www.simonecarletti.it/blog/2008/02/libro-learn-to-program/">Learn to Program</a> e <a title="Libro Ship it! A Practical Guide to Successful Software Projects - Simone Carletti's Blog" href="http://www.simonecarletti.it/blog/2008/04/libro-ship-it-a-practical-guide-to-successful-software-projects/">Ship It!</a>. Per una serie di motivi lo scambiai per un libro legato alla progettazione di interfacce utente e solo dopo mi accorsi che riguardava invece il componente interfaccia in termini di sviluppo del software.</p>
<p>Potete immaginare il mio disappunto! Non che non conosca le interfacce, non che mi manchino le competenze per comprendere l&#8217;argomento&#8230; ma considerato che ad oggi Ruby è il linguaggio di programmazione che uso quotidianamente, un libro sulle interfacce è utile quanto spiegare ad un beduino come si guida una motoslitta.</p>
<p>Passato l&#8217;amaro in bocca e messo in testa il <a href="http://www.java.com/">Java</a>-cappello, ho deciso di intraprendere ugualmente la lettura.</p>
<p><span id="more-730"></span></p>
<h2>Struttura del libro</h2>
<p><em>Interface Oriented Design</em> è organizzato in 3 parti:</p>
<ol>
<li>All about Interfaces</li>
<li>Developing Interfaces</li>
<li>Interfaces in the Real World</li>
</ol>
<p><strong>All about Intefaces</strong> è un&#8217;introduzione alle interfacce. Ken Pugh apre il libro subito con un esempio, dimostrando come in realtà un servizio di pizza a domicilio possa essere descritto con una o più interfacce.</p>
<p>Il secondo capitolo elenca e descrive le <strong>tre leggi delle interfacce</strong> utilizzando, ancora una volta, l&#8217;esempio Pizza Delivery per dimostrare un&#8217;applicazione pratica dell&#8217;argomento.</p>
<p>La prima parte prosegue poi trattando gli elementi di un&#8217;interfaccia, le sue caratteristiche come l&#8217;ereditarietà ed il polimorfismo per dedicare infine un capitolo alle <strong>interfacce remote</strong>.</p>
<p>La seconda parte, <strong>Developing Interfaces</strong>, contiene un solo capitolo ed analizza come orientare lo sviluppo di un software utilizzando le interfacce sia in fase di design, sia in fase di scrittura effettiva del codice sorgente.</p>
<p><strong>Interfaces in the Real World</strong>, l&#8217;ultima parte, contiene 3 esempi d&#8217;utilizzo di interfacce nella vita reale per lo sviluppo di software. L&#8217;ultimo capitolo di questa sezione, <strong>Patters</strong>, accenna infine ai principali Design Patter basati su interfacce.</p>
<h2>Mi aspettavo qualcosa di diverso&#8230;</h2>
<p>E&#8217; possibile che il mio giudizio sia stato in qualche modo influenzato fin dall&#8217;inizio, dai motivi anticipati in apertura di questo post. Ad ogni modo, l&#8217;interesse per questo libro è andato via via scemando durante la lettura.</p>
<p>Abbastanza interessante la prima parte. L&#8217;introduzione è chiara, significativa ed i concetti affrontati possono essere molto utili nella progettazione di un software, indipendentemente dal fatto che il linguaggio scelto supporti o meno l&#8217;uso di interfacce.</p>
<p>In alcuni frangenti non ho apprezzato la volontà dell&#8217;autore di dimostrare come &#8220;praticamente tutto può essere ricondotto ad un&#8217;interfaccia&#8221;, anche in situazioni dove una classe astratta o altri elementi avrebbero rappresentato una scelta più adeguata.</p>
<p>In generale, il libro è molto ricco di informazioni ma buona parte degli argomenti è trattata in modo superficiale.</p>
<p>Lo sviluppo con le interfacce è limitato ad un solo capitolo, il capitolo 11 <strong>Patterns</strong> è poco più che un elenco di nomi e non trasmette in alcun modo le reali potenzialità dei design pattern analizzati.</p>
<p>Gli esempi forniti coprono quasi esclusivamente l&#8217;aspetto di design ed analizi delle interfacce e quasi mai offrono un&#8217;effettiva dimostrazione dell&#8217;implementazione di un&#8217;interfaccia da parte di diversi elementi di un software.</p>
<p>Lo stesso terzo capitolo, offre tre esempi reali ma in tutti e tre ci si limita ad offrire porzioni di codice saltellando da una prospettiva all&#8217;altra. Probabilmente, un solo reale esempio con a corredo un prototipo di applicazione funzionante avrebbe offerto una prospettiva più diretta.</p>
<h2>In conclusione</h2>
<p>Come buona parte degli altri libri editi dalla Pragmatic Programmers, anche <em>Interface Oriented Design</em> è una lettura relativamente rapida e non troppo impegnativa. Tuttavia, rispetto alla qualità generale delle altre pubblicazioni, questa volta non sono rimasto soddisfatto dell&#8217;acquisto e probabilmente non l&#8217;avrei inserito nel carrello se (1) non mi fossi confuso di argomento (2) ed avessi potuto sfogliare il libro curiosandone il contenuto.</p>
<p>A chi desidera approfondire il tema di interfacce e design patterns consiglio in alternativa la lettura di un libro dedicato ai design pattern. A chi sta cercando una trattazione specifica sull&#8217;applicazione delle interfacce in Java, consiglio l&#8217;acquisto di una pubblicazione specifica per Java. In alternativa, se siete alla ricerca di un&#8217;introduzione teorica alle interfacce, <em>Interface Oriented Design</em> potrebbe essere una soluzione adeguata per tragettarvi in seguito verso l&#8217;acquisto di una lettura più specifica.</p>
<h2>Dove comprare Interface Oriented Design</h2>
<p>Potete acquistare una copia cartacea su <a href="http://bit.ly/ait-book-kpiod">Amazon.it</a>, <a href="http://amzn.to/auk-book-kpiod">Amazon.co.uk</a> o <a href="http://amzn.to/acom-book-kpiod">Amazon.com</a>.</p>
<p>Related posts:<ol>
<li><a href='http://www.simonecarletti.it/blog/2008/11/libro-design-patterns-in-ruby/' rel='bookmark' title='Libro Design Patterns in Ruby'>Libro Design Patterns in Ruby</a></li>
<li><a href='http://www.simonecarletti.it/blog/2007/10/libro-programming-ruby/' rel='bookmark' title='Libro Programming Ruby 1.9'>Libro Programming Ruby 1.9</a></li>
<li><a href='http://www.simonecarletti.it/blog/2008/02/libro-learn-to-program/' rel='bookmark' title='Libro Learn to Program'>Libro Learn to Program</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecarletti.it/blog/2008/07/libro-interface-oriented-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Libro Ship it! A Practical Guide to Successful Software Projects</title>
		<link>http://www.simonecarletti.it/blog/2008/04/libro-ship-it-a-practical-guide-to-successful-software-projects/</link>
		<comments>http://www.simonecarletti.it/blog/2008/04/libro-ship-it-a-practical-guide-to-successful-software-projects/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 20:00:04 +0000</pubDate>
		<dc:creator>Simone Carletti</dc:creator>
				<category><![CDATA[Libri]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[pragmatic programmers]]></category>
		<category><![CDATA[recensioni]]></category>

		<guid isPermaLink="false">http://www.simonecarletti.it/blog/2008/04/libro-ship-it-a-practical-guide-to-successful-software-projects/</guid>
		<description><![CDATA[Recensione del libro Ship it!, una delle pubblicazioni di maggiore livello per quanto riguarda la corretta gestione dello sviluppo di un software.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.simonecarletti.it/blog/out/amzit-shipit"><img class="alignleft size-thumbnail wp-image-2730" title="Copertina Libro Ship It!" src="http://www.simonecarletti.it/blog/wp-content/uploads/2007/12/4141mAVxG7L._SS500_-150x150.jpg" alt="Copertina Libro Ship It!" width="150" height="150" /></a> Difficile trovare le parole giuste per scrivere una degna recensione al libro <a href="http://www.simonecarletti.it/blog/out/amzit-shipit"><em>Ship it! A Practical Guide to Successful Software Projects</em></a>.</p>
<p><a href="http://www.simonecarletti.it/blog/out/amzit-shipit"><em>Ship it!</em></a> è veramente un libro eccellente, una delle <strong>pubblicazioni di maggiore livello</strong> per quanto riguarda la corretta gestione dei progetti software. Ship it! non è solo una raccolta di linee guida, suggerimenti e consigli su come organizzare in modo efficiente lo sviluppo di un software, è un libro in grado di aprirvi la mente con esempi e suggerimenti talmente comprensibili che, lo scommetto, più di una volta vi capiterà di esclamare &#8220;<em>ma cavolo, perché non ci ho pensato prima, è fantastico!</em>&#8220;.</p>
<p>La pubblicazione di Ship it! risale al 2005 ma il contenuto di questo libro è tutt&#8217;altro che datato. Rileggendo con attenzione ed occhio critico i suoi capitoli, confrontandoli con le realtà software che ho avuto modo di incontrare mi sono reso conto che meno della metà delle aziende di sviluppo adottano anche solo la metà dei consigli e delle best practice indicate per la creazione di un software: <strong>unit test</strong>, <strong>gestione dei sorgenti</strong>, <strong>continuous integrations</strong>, <strong>issue tracking</strong>, <strong>code review</strong>, <strong>code change notification</strong>, <strong>automatic builds</strong>&#8230; questi sono solo alcuni dei concetti fondamentali affrontati, discussi ed approfonditi dal libro.</p>
<p><span id="more-718"></span></p>
<h2>Introduzione</h2>
<p>L&#8217;introduzione è, da sola, una delle migliori che abbia mai avuto modo di leggere. Concisa, efficace e soprattutto incredibilmente profonda. Vi consiglio di non perdere neppure una pagina di questo libro, prefazione compresa scritta da Andy Hunt.</p>
<p>Nell&#8217;introduzione vengono da subito chiariti quelli che saranno gli argomenti essenziali trattati nel libro</p>
<ul>
<li>Techniques (tecniche)</li>
<li>Infrastructure (infrastrutture)</li>
<li>Process (processi)</li>
</ul>
<p>Ciascuno di questi elementi è poi ripreso ed approfondito in un capitolo dedicato.</p>
<p><img class="aligncenter size-medium wp-image-2733" title="ship-it-poster" src="http://www.simonecarletti.it/blog/wp-content/uploads/2008/04/ship-it-poster-400x315.png" alt="ship-it-poster" width="400" height="315" /></p>
<p><strong>Sviluppatori</strong>, <strong>tester</strong>, <strong>team leader</strong> o <strong>project manager</strong>: non importa quale sia il vostro ruolo all&#8217;interno dello sviluppo di un software, questo libro è orientato ad ognuna delle quattro figure indicate. Ogni capitolo permette la lettura sotto diversi punti di vista e non c&#8217;è argomento che, alla fine, non possa influenzare il vostro modo di lavorare.</p>
<p>Per tutta la durata del libro, di tanto in tanto, una frase essenziale o un&#8217;affermazione chiave viene evidenziata come <strong>TIP</strong>. L&#8217;appendice A, dal titolo <strong>Tip Summary</strong>, è un riepilogo dei 42 suggerimenti chiave per una corretta gestione di un progetto software.</p>
<p>Dopo l&#8217;introduzione, il libro si sviluppa in 4 capitoli:</p>
<ul>
<li>Tools and Infrastructure</li>
<li>Pragmatic Project Techniques</li>
<li>Tracer Bullet Development</li>
<li>Common Problems and How to Fix Them</li>
</ul>
<h2>Tools and Infrastructure</h2>
<p>Questo capitolo analizza e descrive una <strong>corretta architettura per lo sviluppo di software</strong>.</p>
<p>L&#8217;apertura è dedicata all&#8217;analisi di come gli <strong>strumenti di Source Code Management</strong> (<acronym title="Source Code Management">SCM</acronym>), come ad esempio <a title="Strumenti di sviluppo: Subversion (SVN)" href="http://www.simonecarletti.it/blog/2007/03/strumenti-di-sviluppo-subversion-svn/">Subversion</a>, sono tanto essenziali quanto indispensabili per qualsiasi progetto software, ma non solo! Possono infatti essere utilizzati in tantissimi ambiti come quello editoriale per tenere traccia dell&#8217;evoluzione di un libro e collegare l&#8217;attività di un autore a quella di un editore.</p>
<p>Altro tema affrontato è quello della <strong>compilazione automatica di un progetto</strong>. In alcuni casi si tratta di una vera e propria compilazione in binario, come per un eseguibile, in altri casi la compilazione è semplicemente la creazione di un pacchetto distribuibile come i file GEM in Ruby.<br />
Indipendentemente dalla situazione, Ship it! suggerisce una ricca lista di accorgimenti per rendere quest&#8217;operazione indolore. Interessante la discussione sull&#8217;argomento <a title="Continuous Integration" href="http://www.martinfowler.com/articles/continuousIntegration.html">Continuous Integration</a>, con tanto di strumenti ed esempi.</p>
<p>Non manca una sezione dedicata al tema degli <a title="Strumenti di Sviluppo: Issue Tracker" href="http://www.simonecarletti.it/blog/2007/09/strumenti-di-sviluppo-issue-tracker/">Issue Tracker</a>, con utilissimi suggerimenti per non vanificare le potenzialità dello strumento, indipendentemente da quale si tratti. Non dobbiamo infatti dimenticare che <strong>anche lo strumenti migliore, nelle mani di un incapace, può trasformarsi in un&#8217;arma letale</strong>.</p>
<p>Eccezionale la panoramica sull&#8217;argomento Testing: Functional Test, Performance Test, Load Test, Smoke test ed Integration Test. Ovviamente c&#8217;è da considerare che questi temi meriterebbero un libro dedicato, ma Ship it! è in grado di offrire le informazioni essenziali per suscitare almeno la curiosità per ulteriori approfondimenti personali.</p>
<p>Il capitolo si conclude con una sezione chiamata <strong>When Not to Experiment</strong>, essenziale per quanti soffrono di &#8220;mal del voglio provare tutto ora perché figo&#8221;! In altre parole, gli autori sottolineano quanto sia fondamentale la scelta di tecnologie che si conoscono ma, soprattutto, non introdurre nuove tecnologie in momenti critici, come quello che precede il rilascio di una nuova versione, solo perché qualcuno ha detto che &#8220;questo prodotto funziona meglio di quello&#8221;.</p>
<p>Per citare Jared Richardson e William Gwaltney: <em>Never let a critical technology (like your build system) be created as a technology expediment</em> o <em>Don&#8217;t use wizard code you don&#8217;t understand</em>.<br />
Cosa? Queste affermazioni vi sembrano banali? Allora non avete idea di quanti utilizzino script copia incolla per scrivere routine essenziali di un sistema senza neppure comprendere il loro funzionamento!</p>
<h2>Pragmatic Project Techniques</h2>
<p>Il capitolo <strong>Pragmatic Project Techniques</strong> sposta l&#8217;attenzione dalle tecnologie alle <strong>abitudini e tecniche</strong>.<br />
Si parla delle caratteristiche essenziali di un Tech Leader, così come dell&#8217;importanza di <strong>riunioni quotidiane</strong>.</p>
<p>Una decina di pagine sono dedicate all&#8217;argomento Code Review descrivendo nel dettaglio vantaggi e svantaggi di questa pratica di sviluppo. Ci tengo a sottolineare come ogni affermazione del libro sia corredata da esempi pratici ed esperienze reali che arricchiscono ulteriormente il valore di ogni consiglio.</p>
<p>L&#8217;intero terzo capitolo ruota attorno all&#8217;argomento &#8220;The List&#8221;. Chiunque debba organizzare la propria attività ben conosce l&#8217;<strong>importanza delle TODO list</strong>, di un agenda o di un qualsiasi strumento dove annotare e raccogliere i propri appuntamenti. Gli autori si spingono oltre fino a dedicare decine di pagine a come organizzare al meglio la propria lista delle attività e quella dell&#8217;intero team, nel caso il vostro ruolo sia quello di team leader o manager.</p>
<h2>Tracer Bullet Development</h2>
<p>Il quarto capitolo è interamente dedicato alla pratica di sviluppo <strong>Tracer Bullet Development</strong> (<acronym title="Tracer Bullet Development">TBD</acronym>). Come il <strong>Test Driven Development</strong> (<acronym title="Test Driven Development">TDD</acronym>) o l&#8217;<strong>Extreme Programming</strong> (<acronym title="Extreme Programming">XP</acronym>), il <acronym title="Tracer Bullet Development">TBD</acronym> è una delle tecniche che si possono adottare nello sviluppo di un software. Questo capitolo ne analizza caratteristiche, pregi e difetti.</p>
<h2>Common Problems and How to Fix Them</h2>
<p>Come ben saprà chi di voi è abituato a leggere libri ed articoli, un conto è scrivere di buone abitudini un conto è mettere in pratica quanto qualcun altro scrive. Ci sono innumerevoli motivi che possono portare all&#8217;impossibilità di adottare una o l&#8217;altra tecnologia o condizionare una scelta.</p>
<p>Nel quinto capitolo sono riassunti oltre una decina dei principali problemi collegati alle best practice trattate nel libro, con relativi suggerimenti su come risolverli. Anche in questo caso, ogni problema è documentato con esperienze reali che rendono le soluzioni qualcosa diverso dai classici consigli inutilizzabili.</p>
<h2>Non finisce qui!</h2>
<p>I capitoli sono terminati, ma il libro non finisce qui.</p>
<p>Ben 8 appendici completano la pubblicazione con risorse ed approfondimenti su <strong>sistemi di gestione del codice</strong>, <strong>scripting tool</strong>, <strong>issue tracker</strong>, <strong>framework per il test di prodotti</strong> e <strong>metodi di sviluppo</strong>.</p>
<h2>In conclusione</h2>
<p>Non più di qualche mese fa, in risposta ad un mio post su HTML.it dedicato allo unit testing, un utente commentò dicendo di quanto sia difficile introdurre certe tecniche nello sviluppo di un software, considerando che spesso i project manager non le conoscono o non ne comprendono l&#8217;efficacia. La mia risposta, nuda e cruda, fu che un project manager che non conosca o comprenda l&#8217;efficacia di tecniche come l&#8217;unit testing o la gestione organizzata di un progetto probabilmente ha ancora molto da imparare e dovrebbe tornare a studiare.</p>
<p>Ad oggi, probabilmente, in quell&#8217;occasione avrei allegato un collegamento a Ship it!. Questo libro è infatti un concentrato di molti degli aspetti che un buon project manager dovrebbe conoscere (ed applicare), ma non solo.</p>
<p>Per quanto mi riguarda, la lettura di <a href="http://www.simonecarletti.it/blog/out/amzit-shipit">Ship it! A Practical Guide to Successful Software Projects</a> è stata l&#8217;occasione per trovare conferma su molte abitudini maturate nel tempo grazie all&#8217;esperienza, abitudini che per un motivo o per l&#8217;altro non mi sono mai state insegnate direttamente ma ho appreso nel tempo.<br />
Ship it! mi ha permesso di consolidarne l&#8217;efficacia e, in molti casi, mi ha aperto la mente permettendomi un uso ancora più professionale.</p>
<p><a href="http://bit.ly/btWJV4"><em>Ship it! A Practical Guide to Successful Software Projects</em></a> ha un costo irrisorio se paragonato al reale valore professionale e non è un caso che compaia in molte presentazioni, non per ultima in quella di Alex Martelli in occasione della <a title="Benvenuti! | PyCon2 - La seconda conferenza italiana dedicata al linguaggio Python." href="http://www.pycon.it/">PyCon 2007</a>.</p>
<p>L&#8217;acquisto è <strong>assolutamente consigliato</strong>, non solo a chi si occupa di sviluppo software. Molti suggerimenti del libro sono infatti applicabili ad altri ambienti dell&#8217;informatica e del web.</p>
<h2>Dove comprare Ship it!</h2>
<p>Potete acquistare una copia cartacea <a href="http://www.simonecarletti.it/blog/out/amzit-shipit">Amazon.it</a>, <a href="http://www.simonecarletti.it/blog/out/amzuk-shipit">Amazon.co.uk</a> o <a href="http://www.simonecarletti.it/blog/out/amzcom-shipit">Amazon.com</a>.</p>
<p>Related posts:<ol>
<li><a href='http://www.simonecarletti.it/blog/2008/07/libro-interface-oriented-design/' rel='bookmark' title='Libro Interface Oriented Design'>Libro Interface Oriented Design</a></li>
<li><a href='http://www.simonecarletti.it/blog/2007/10/libro-programming-ruby/' rel='bookmark' title='Libro Programming Ruby 1.9'>Libro Programming Ruby 1.9</a></li>
<li><a href='http://www.simonecarletti.it/blog/2008/11/libro-design-patterns-in-ruby/' rel='bookmark' title='Libro Design Patterns in Ruby'>Libro Design Patterns in Ruby</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecarletti.it/blog/2008/04/libro-ship-it-a-practical-guide-to-successful-software-projects/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Libro TextMate &#8211; Power Editing for the Mac</title>
		<link>http://www.simonecarletti.it/blog/2008/03/libro-textmate-power-editing-for-the-mac/</link>
		<comments>http://www.simonecarletti.it/blog/2008/03/libro-textmate-power-editing-for-the-mac/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 21:25:32 +0000</pubDate>
		<dc:creator>Simone Carletti</dc:creator>
				<category><![CDATA[Libri]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[pragmatic programmers]]></category>
		<category><![CDATA[recensioni]]></category>
		<category><![CDATA[textmate]]></category>

		<guid isPermaLink="false">http://www.simonecarletti.it/blog/2008/03/libro-textmate-power-editing-for-the-mac/</guid>
		<description><![CDATA[Recensione del libro TextMate, un autentico capolavoro dedicato all'editor per Mac più famoso.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.simonecarletti.it/blog/out/amzit-pragtextmate"><img class="alignleft size-thumbnail wp-image-3387" title="Libro TextMate" src="http://www.simonecarletti.it/blog/wp-content/uploads/2008/03/pragprog-textmate-125x150.png" alt="Libro TextMate" width="125" height="150" /></a> <a href="http://www.simonecarletti.it/blog/out/amzit-pragtextmate"><em>TextMate: Power Editing for the Mac</em></a> è una pubblicazione interamente dedicata a <a title="TextMate" href="http://macromates.com/">TextMate</a>, un editor di testo per Mac. Mi correggo, sarebbe più corretto definire TextMate come <em>l&#8217;editor</em> di testo per Mac, dato il suo ruolo ufficialmente riconosciuto di assoluta leadership nel campo.</p>
<p>E&#8217; difficile trasmettere, a chi non lo ha mai provato o peggio ancora a chi non usa Mac, la sensazione di cosa significhi disporre di un gioiello della programmazione come TextMate. Questo programma, nato dalla mente di <strong>Allan Odgaard</strong>, fonde insieme in un unico prodotto le potenzialità dello scripting di shell, un&#8217;interfaccia elegante e curata, la flessibilità di un prodotto praticamente riconfigurabile e personalizzabile. <del>Scritto in <strong>Ruby</strong>, Textmate ha preso da questo linguaggio sia la sua eleganza sia la sua dinamicità.</del></p>
<p>Potrei andare avanti ore a celebrare questo programma ma preferisco soddisfare la curiosità di chi ancora non lo conosce invitandovi a guardare <a title="Screencasts -- TextMate" href="http://macromates.com/screencasts">alcuni video</a> che ne dimostrano l&#8217;utilizzo. Non basterebbe un libro per descrivere tutte le potenzialità di TextMate&#8230; a proposito di libro, parlavamo proprio di questo!</p>
<p><span id="more-714"></span><em>TextMate: Power Editing for the Mac</em> è un autentico capolavoro, quasi quanto il programma che racconta. Non lasciatevi ingannare dallo spessore di sole 182 pagine, credetemi quando vi dico che a leggerlo mi ci è voluto più tempo di altre pubblicazioni a prima vista più impegnative, come <a title="Libro Professional Search Engine Optimization with PHP - Simone Carletti's Blog" href="http://www.simonecarletti.it/blog/2007/08/libro-professional-search-engine-optimization-with-php/">Professional Search Engine Optimization with PHP</a>.</p>
<p>Il motivo è che, in queste 182 pagine, <strong>James Edward Gray II</strong> ha raccolto un concentrato della potenza di TextMate affrontando temi come <strong>Ricerca e Sostituzione via espressioni regolari</strong>, <strong>Automazioni</strong> e <strong>Bundle</strong>, registrazione di <strong>Macro</strong> e <strong>Snippets</strong>, creazione di comandi ed interazione con la <strong>shell</strong> fino ad arrivare alla creazione di una nuova grammatica di linguaggio. Il tutto condito da un quantitativo di scorciatoie da tastiera che quasi certamente vi faranno dimenticare che avete un mouse collegato alla porta USB del vostro Mac.</p>
<p>Questo libro non è il solito manuale all&#8217;uso del programma, ma d&#8217;altra parte neanche TextMate è il solito programma!</p>
<p>Il primo macro capitolo, <em>Editing</em>, è il più tranquillo. Vi guiderà nella creazione di progetti mostrandovi alcune semplici ma eccellenti scorciatoie per cercare file e modificare file. Il capitolo <em>Find and Replace</em> rivela fin da subito le potenzialità di TextMate, esplorando come spremere in fondo <a title="Oniguruma for Ruby Main" href="http://oniguruma.rubyforge.org/">Oniguruma</a>, il regular expression engine di Ruby.</p>
<p>Tanto per darvi un&#8217;idea, proprio oggi ho sfruttato alcune indicazioni per creare, inline e via TextMate, un file report CSV per un cliente a partire da un file di log di Rails di oltre 190Mb! Il tutto con una sola espressione regolare di 10 righe&#8230; ancora mi sto chiedendo come il mio Mac Pro, i suoi 4 processori e TextMate siano riusciti nell&#8217;impresa. Ovviamente mi sto ancora chiedendo anche come io sia riuscito nell&#8217;impresa, dato il mio odio-amore per le espressioni regolari&#8230; ma questo è un&#8217;altra puntata!</p>
<p>Il secondo macrocapitolo include ben <strong>5 capitoli interamente dedicati al cuore di TextMate</strong>: Automazioni, Bundle, Snippet, Macro, Comandi e suggerimenti. Credeteci se vi dico che vi si aprirà un mondo nuovo.</p>
<p>Un esempio? Pensate che potete creare una semplice Bundle SEO dove generare un report sui posizionamenti semplicemente aprendo una lista Keyword da un file di testo! Non sto scherzando. Se poi siete programmatori Ruby, scoprirete quando è facile creare veri e propri programmi Ruby basati su TextMate grazie alle librerie di sistema ed alle API offerte dal programma.</p>
<p>Altro esempio? Questo post io lo sto editando da TextMate direttamente collegato al mio blog via XML-RPC!</p>
<p>Il terzo ed ultimo macro capitolo è il colpo di grazia, se ancora non ne avete avuto basta! L&#8217;autore supera se stesso dimostrando come creare una <strong>nuova grammatica di linguaggio</strong>. Nello specifico, l&#8217;esempio dimostra come creare la grammatica per JSON, la stessa che qualche mese più tardi entrerà a far parte della dotazione standard delle grammatiche di TextMate (il libro ha un paio d&#8217;anni).</p>
<p>Potrei andare avanti ancora ore, ma rischierei di annoiarvi oltremodo nonché rubarvi tempo prezioso per <a href="http://www.simonecarletti.it/blog/out/amzit-pragtextmate">correre su Amazon ed ordinare questo libro</a>! Una lettura assolutamente consigliata.</p>
<h2>Dove comprare Textmate &#8211; Power Editing for the Mac</h2>
<p>Potete acquistare una copia cartacea su <a href="http://www.simonecarletti.it/blog/out/amzit-pragtextmate">Amazon.it</a>, <a href="http://www.simonecarletti.it/blog/out/amzuk-pragtextmate">Amazon.co.uk</a> o <a href="http://www.simonecarletti.it/blog/out/amzcom-pragtextmate">Amazon.com</a>.</p>
<p>Related posts:<ol>
<li><a href='http://www.simonecarletti.it/blog/2007/12/pragmatic-programmers-addicted/' rel='bookmark' title='Pragmatic programmers addicted'>Pragmatic programmers addicted</a></li>
<li><a href='http://www.simonecarletti.it/blog/2007/11/libro-agile-web-development-with-rails/' rel='bookmark' title='Libro Agile Web Development with Rails 3'>Libro Agile Web Development with Rails 3</a></li>
<li><a href='http://www.simonecarletti.it/blog/2008/11/libro-pragmatic-version-control-using-git/' rel='bookmark' title='Libro Pragmatic Version Control Using Git'>Libro Pragmatic Version Control Using Git</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecarletti.it/blog/2008/03/libro-textmate-power-editing-for-the-mac/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Libro Learn to Program</title>
		<link>http://www.simonecarletti.it/blog/2008/02/libro-learn-to-program/</link>
		<comments>http://www.simonecarletti.it/blog/2008/02/libro-learn-to-program/#comments</comments>
		<pubDate>Thu, 07 Feb 2008 22:28:56 +0000</pubDate>
		<dc:creator>Simone Carletti</dc:creator>
				<category><![CDATA[Libri]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[pragmatic programmers]]></category>
		<category><![CDATA[recensioni]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.simonecarletti.it/blog/2008/02/libro-learn-to-program/</guid>
		<description><![CDATA[Recensione del libro Learn to Program, una lettura consigliata per chi desidera avvicinarsi a Ruby o alla programmazione in generale.]]></description>
			<content:encoded><![CDATA[<p><a href="http://bit.ly/966W2q"><img class="alignleft size-thumbnail wp-image-2727" title="Copertina Libro Learn To Program" src="http://www.simonecarletti.it/blog/wp-content/uploads/2007/12/51NCA4F06VL._SS500_-150x150.jpg" alt="Copertina Libro Learn To Program" width="150" height="150" /></a> Tra tutti i libri che compongono il <a title="Pragmatic programmers addicted - Simone Carletti's Blog" href="http://www.simonecarletti.it/blog/2007/12/pragmatic-programmers-addicted/">mio ultimo acquisto</a> non è stato facile scegliere da quale cominciare. Così ho deciso che come prima cosa li avrei sfogliati tutti. Curiosa questo e curiosa quello, complice il periodo non troppo tranquillo, la scelta è ricaduta sul libro <strong>Learn to Program</strong>, inutile dirlo, pubblicato da Pragmatic Programmers.</p>
<p><a href="http://bit.ly/966W2q">Learn to Program</a>, a differenza di quanto pensavo prima dell&#8217;acquisto, è tutt&#8217;altro che un libro incentrato sulle buone abitudini di programmazione. E&#8217; una vera e propria guida per <strong>imparare a programmare</strong> o, per meglio dire, cominciare a programmare. La vera pratica, come in molti altri ambiti, è il &#8220;campo di battaglia&#8221;!</p>
<p><span id="more-709"></span></p>
<h2>A chi è rivolto</h2>
<p>Learn to Program non è però il classico manuale per newbie. Il linguaggio è semplice ma altrettanto coinvolgente. L&#8217;autore ha saputo mantenere attivo l&#8217;interesse con esempi calzanti, battute ed interventi quasi alla Zelig. Contrariamente a quanto pensassi, nonostante il sottoscritto non sia proprio nuovo alla programmazione, non mi sono per nulla annoiato nel leggerlo, anzi!</p>
<p>Il linguaggio semplice ma sufficientemente tecnico quando necessario. L&#8217;ordine logico dei contenuti permette una lettura fluida anche a chi si è avvicinato da poco al mondo della programmazione. Rispetto ai soliti manuali per imparare a programmare questo libro rappresenta quasi un&#8217;anomalia nella <strong>scelta del linguaggio: Ruby</strong>.</p>
<p>L&#8217;intero libro è infatti fortemente focalizzato su Ruby e questa caratteristica, sotto certi aspetti, rende l&#8217;acquisto ancora più opportuno. Si tratta infatti di una scelta perfetta sia per il programmatore affermato che desidera, in qualche oretta, degustare gli aspetti principali di Ruby sia (e soprattutto) per quanti vorrebbero approcciare un linguaggio di programmazione puro senza esperienze precedenti alle spalle.</p>
<p>Un esempio perfettamente calzante sono, a mio avviso, i <strong>web designer</strong>. Sempre più frequentemente tra le competenze di un web designer oltre a CSS e XMTML rientra la capacità di adattare layout a linguaggi dinamici. Pensate ai framework MVC ed ai template engine: Ruby, PHP&#8230; oramai l&#8217;epoca delle &#8220;paginette statiche&#8221; è finita.</p>
<p>A mio avviso, questo è il libro ideale per <strong>un web designer che vorrebbe avvicinarsi alla programmazione</strong>: nessuna pretesa di diventare il nuovo super programmatore di turno, piuttosto la volontà di riuscire ad acquisire autonomia ed esperienza nell&#8217;elaborazione di template con annessi costrutti di programmazione.</p>
<h2>Pro e Contro</h2>
<p>Per quanto mi riguarda, la ciliegina sulla torna è senza dubbio il capitolo 14: <strong>Blocks and Procs</strong>. Non vi nego che l&#8217;argomento <strong>blocchi e procedure</strong>, insieme ai <strong>simboli</strong>, è stato quello più ostico da digerire quando mi sono avvicinato per la prima volta a Ruby a livello professionale. In poche pagine, questo libro spiega un concetto complesso in modo elegante ed inconfondibile. Un motivo in più per essere soddisfatto dell&#8217;acquisto.</p>
<p>Unico neo, se così vogliamo chiamarlo, che potrebbe mettere in difficoltà chi mastica poco l&#8217;inglese, è il linguaggio. No, nessun tono offensivo o simile. Come anticipato, il libro non è certo povero di battute ed affermazioni umoristiche. Proprio per comprendere al meglio certe espressioni gergali è necessaria una certa elasticità mentale e dimestichezza con l&#8217;inglese, pena non riuscire a comprendere ed apprezzare a pieno giochi di parole e toni informali.</p>
<h2>In conclusione</h2>
<p>Se vi rispecchiate nei profili appena descritti, <strong>vi consiglio vivamente l&#8217;acquisto</strong>. Inoltre, il prezzo è assolutamente competitivo.</p>
<p>Spesa non necessaria per i programmatori professionisti, per voi, cari lettori, ci sarà presto la recensione di qualche altro libro che non potete assolutamente perdervi! Qualche anticipazione? <strong>Team management</strong>, <strong>design pattern</strong> e <strong>unit testing</strong>.</p>
<p>Related posts:<ol>
<li><a href='http://www.simonecarletti.it/blog/2007/10/libro-programming-ruby/' rel='bookmark' title='Libro Programming Ruby 1.9'>Libro Programming Ruby 1.9</a></li>
<li><a href='http://www.simonecarletti.it/blog/2008/11/libro-design-patterns-in-ruby/' rel='bookmark' title='Libro Design Patterns in Ruby'>Libro Design Patterns in Ruby</a></li>
<li><a href='http://www.simonecarletti.it/blog/2007/11/libro-agile-web-development-with-rails/' rel='bookmark' title='Libro Agile Web Development with Rails 3'>Libro Agile Web Development with Rails 3</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecarletti.it/blog/2008/02/libro-learn-to-program/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Libro L&#8217;arte dell&#8217;inganno</title>
		<link>http://www.simonecarletti.it/blog/2008/01/libro-larte-dellinganno/</link>
		<comments>http://www.simonecarletti.it/blog/2008/01/libro-larte-dellinganno/#comments</comments>
		<pubDate>Thu, 03 Jan 2008 23:06:15 +0000</pubDate>
		<dc:creator>Simone Carletti</dc:creator>
				<category><![CDATA[Libri]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[kevin burton]]></category>
		<category><![CDATA[recensioni]]></category>

		<guid isPermaLink="false">http://www.simonecarletti.it/blog/2008/01/libro-larte-dellinganno/</guid>
		<description><![CDATA[Recensione del libro L'arte dell'inganno, il primo dei due libri scritto da Kevin Mitnick e dedicato a storie di ingegneria sociale.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/product/076454280X?ie=UTF8&amp;tag=simonecarletti-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=076454280X"><a href="http://www.simonecarletti.it/blog/wp-content/uploads/2008/01/cover-the-art-of-deception.jpg"><img class="alignleft size-full wp-image-2696" title="Copertina Libro The Art of Deception" src="http://www.simonecarletti.it/blog/wp-content/uploads/2008/01/cover-the-art-of-deception.jpg" alt="Copertina Libro The Art of Deception" width="240" height="240" /></a></a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=simonecarletti-20&amp;l=as2&amp;o=1&amp;a=076454280X" border="0" alt="" width="1" height="1" /></p>
<p>Il libro in questione si chiama <strong>L&#8217;arte dell&#8217;inganno</strong>, in inglese <a href="http://www.amazon.com/gp/product/076454280X?ie=UTF8&amp;tag=simonecarletti-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=076454280X">The Art of Deception</a>, ed è il primo dei due libri scritti dal celebre Kevin D. Mitnick.<br />
Del secondo libro ho già avuto modo di raccontare in passato, nel caso ve lo foste perso vi raccomando la lettura della recensione de <a title="Libro L'arte dell'intrusione - Simone Carletti's Blog" href="http://www.simonecarletti.it/blog/2007/07/libro-larte-dellintrusione/">l&#8217;arte dell&#8217;intrusione</a>&#8230; vale la pena!</p>
<p>Sono sempre stato diffidente dei sequel eppure, questa volta, mi sono trovato davanti ad un caso che dopo a <a title="Blade II (2002)" href="http://www.imdb.com/title/tt0187738/">Blade II</a> e a Windows 98 Second Edition sembrerebbe un palese esempio di &#8220;il secondo è meglio del primo&#8221;!</p>
<p><span id="more-703"></span>Decisamente diversa la mia personale esperienza con il primo libro, l&#8217;arte dell&#8217;inganno, dove Mitnick raccoglie alcune storie di hacking legate in special modo all&#8217;<strong>ingegneria sociale</strong>, l&#8217;arte di &#8220;manipolare&#8221; uno o più individui al fine di raccogliere una serie di informazioni utili (in questo caso) a sferrare un attacco informatico.</p>
<p>A differenza del primo, del quale continuo ad avere un bel ricordo, l&#8217;arte dell&#8217;inganno si presenta come una raccolta disordinata di idee, raggruppati sotto capitoli apparentemente per una pura ragione editoriale.<br />
Le storie si miscelano creando parecchia confusione e spesso è difficile capire quando è Mitnick a narrare per esperienza o qualcun altro a raccontare.</p>
<p>La qualità stessa delle storie è molto più scadente del secondo libro, quasi come a voler inserire tutto per forza con la conseguenza di un qualcosa difficilmente leggibile, disordinato e per certi versi anche noioso.</p>
<p>Come avrete capito, questa è la prima lettura tra quelle che ho recensito fino ad oggi della quale non mi sento di consigliare l&#8217;acquisto.<br />
Se proprio non sapete resistere alla tentazione di leggere qualche storia interessante sull&#8217;argomento, torno a consigliarvi l&#8217;<a title="Libro L'arte dell'intrusione - Simone Carletti's Blog" href="http://www.simonecarletti.it/blog/2007/07/libro-larte-dellintrusione/">acquisto di L&#8217;arte dell&#8217;intrusione</a> dove, tra l&#8217;altro, un intero capitolo è stato dedicato proprio al social engineering.</p>
<p>Related posts:<ol>
<li><a href='http://www.simonecarletti.it/blog/2007/07/libro-larte-dellintrusione/' rel='bookmark' title='Libro L&#8217;arte dell&#8217;intrusione'>Libro L&#8217;arte dell&#8217;intrusione</a></li>
<li><a href='http://www.simonecarletti.it/blog/2008/11/libro-design-patterns-in-ruby/' rel='bookmark' title='Libro Design Patterns in Ruby'>Libro Design Patterns in Ruby</a></li>
<li><a href='http://www.simonecarletti.it/blog/2007/11/libro-agile-web-development-with-rails/' rel='bookmark' title='Libro Agile Web Development with Rails 3'>Libro Agile Web Development with Rails 3</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecarletti.it/blog/2008/01/libro-larte-dellinganno/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

