<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>www.jugpadova.it: Category Recensioni</title>
    <link>http://www.jugpadova.it/articles/category/recensioni</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Java User Group [Padova]</description>
    <item>
      <title>la storia dei tre spaccapietre</title>
      <description>&lt;p&gt;volevo segnalarvi la storia dei tre spaccapietre.&lt;/p&gt;


	&lt;p&gt;Un viaggiatore, una volta, incontro&amp;#8217; tre spaccapietre. Domandandosi, incuriosito, cosa stessero facendo si avvicinò al primo e chiese, &amp;#8220;che cosa stai facendo con queste pietre?&amp;#8221;, senza la minima esitazione il lavoratore rispose, &amp;#8220;Sono uno spaccapietre e sto spaccando le pietre&amp;#8221;, ancora incerto sul compito dei lavoratori, si avvicino al secondo e pose la stessa domanda, questa volta il lavoratore, pensò un attimo, fisso&amp;#8217; brevemente il viaggiatore e spiegò: &amp;#8220;Io sono una spaccapietre e spacco le pietre per mantenere la mia famiglia&amp;#8221;. Perplesso per le due risposte, il viaggiatore pose la stessa domanda al terzo. Questo, fermandosi un attimo, e fissando la pietra nelle sue mani , rispose &amp;#8220;Sono una spaccapietre e sto costruendo una cattedrale&amp;#8221;&lt;/p&gt;


	&lt;p&gt;vi allego un riferimento ad un blog in cui viene spiegato quale possa essere la differenza nello sviluppo del software avendo o meno la visione precisa di quello che si vuole realizzare
&lt;a href="http://blogs.msdn.com/steverowe/archive/2007/07/04/the-three-stonecutters.aspx"&gt;The Three Stonecutters&lt;/a&gt;&lt;/p&gt;
</description>
      <pubDate>Tue, 18 Dec 2007 11:26:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:dd8bc891-cc94-40a6-a71b-e588e3c209c3</guid>
      <author>Paolo Foletto</author>
      <link>http://www.jugpadova.it/articles/2007/12/18/la-storia-dei-tre-spaccapietre</link>
      <category>Recensioni</category>
    </item>
    <item>
      <title>www.parleys.com</title>
      <description>&lt;p&gt;come sviluppare uno strumento per la diffusione e la condivisione delle presentazioni video alle più importanti conferenze europee?
&lt;a href="http://www.javapolis.com/confluence/display/JP07/Stephan+Janssen"&gt; Stephan Janssen&lt;/a&gt;
una ne fa e cento ne pensa, dopo aver creato il &lt;span class="caps"&gt;JUG&lt;/span&gt; del Belgio e creato e fatto sviluppare &lt;span class="caps"&gt;JAVAPOLIS&lt;/span&gt; che alla sua sesta edizione nel 2007 ha fatto il tutto esaurito con 3200 partecipanti, ha messo in piedi &lt;a href="http://www.parleys.com "&gt; www.parleys.com &lt;/a&gt;
un sito per mettere a disposizione e condividere le presentazioni video, audio con tanto di diapositive sincronizzate delle maggiori conferenze europee legate a Java.&lt;/p&gt;


	&lt;p&gt;Oltre all&amp;#8217;aspetto tecnico ha saputo creare una rete di relazione tra le varie conferenze in modo tale da poter trovare in un unico sito le presentazioni delle varie conferenze, coordinare invece di moltiplicare gli sforzi nell&amp;#8217;implementare funzionalità simili.&lt;/p&gt;


	&lt;p&gt;Stephan ha annunciato la prossima generazione di Parleys, 
&lt;a href="http://www.javapolis.com/confluence/display/JP07/Parleys.com+v2"&gt; Parleys.com V2&lt;/a&gt;
che sarà disponibile verso primavera.
Si tratta di una versione sviluppata con l&amp;#8217;ultimo strumento proposto da Adobe Air e che assicura una nuova esperienza nella costruzione di &lt;span class="caps"&gt;RIA&lt;/span&gt;, Rich Internet Application, e nuove esperienze nell&amp;#8217;uso di nuove interfacce e funzionalità.
Ne cito una, l&amp;#8217;applicazione si accorge che non dispone dell&amp;#8217;accesso a internet e si adatta coerentemente a tale  situazione&lt;/p&gt;
</description>
      <pubDate>Tue, 18 Dec 2007 11:23:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:f7d62719-0818-4994-a167-5f5b1800ca72</guid>
      <author>Paolo Foletto</author>
      <link>http://www.jugpadova.it/articles/2007/12/18/www-parleys-com</link>
      <category>Recensioni</category>
    </item>
    <item>
      <title>Sun Certified Programmer &amp;amp; Developer for Java 2</title>
      <description>&lt;p&gt;Il libro che ho utilizzato per sostenere la mia prima (e unica) certificazione java (la &lt;span class="caps"&gt;SCJP 1&lt;/span&gt;.4) è stato il &amp;#8220;Sun Certified Programmer &amp;#38; Developer for Java 2&amp;#8221; di Kathy Sierra e Bert Bates pubblicato da McGraw Hill.&lt;/p&gt;
&lt;p&gt;Il volume (l&amp;#8217;ho usato con molta soddisfazione, lo devo ammettere) copre nel dettaglio tutto il programma dell&amp;#8217;esame; ogni argomento è spiegato in modo chiaro, coinciso e mai monotono. Al termine di ogni capitolo sono presenti due sezioni: una intitolata &amp;#8220;two minute drill&amp;#8221; dove vengono riassunte in una-due righe i principali punti chiave e una sezione &amp;#8220;self-test&amp;#8221; con una serie di domande a quiz che permettono di verificare la propria competenza sulle conoscenze acquisite. Al termine del libro sono disponibili anche una serie di capitoli dove danno dei consigli su come superare la certificazione &amp;#8220;Developer&amp;#8221; dove in sostanza bisogna sviluppare un progetto invece che superare un quiz.&lt;/p&gt;


	&lt;p&gt;Mi sento di consigliare questo libro anche a chi sta muovendo i primi passi nel linguaggio di programmazione Java e vuole approfondire la propria competenza senza voler necessariamente ottenere la certificazione.&lt;/p&gt;</description>
      <pubDate>Sat, 03 Jun 2006 15:37:33 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:372012f0-4024-40c6-a8b3-d13ffe008a98</guid>
      <author>Emanuele Gesuato</author>
      <link>http://www.jugpadova.it/articles/2006/06/03/sun-certified-programmer-developer-for-java-2</link>
      <category>Recensioni</category>
      <category>certificazione</category>
      <category>libro</category>
      <category>scjp</category>
      <trackback:ping>http://www.jugpadova.it/articles/trackback/461</trackback:ping>
    </item>
    <item>
      <title>Enterprise Integration with Ruby</title>
      <description>&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/files/0976694069.jpg"&gt;&lt;img src="/files/0976694069.jpg" alt="Cover: Enterprise Integration with Ruby" width="120" border="0"/&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Titolo: Enterprise Integration with Ruby&lt;br/&gt;Autore: Maik Schmidt&lt;br/&gt;Pagine: 346&lt;br/&gt;Anno: 2006&lt;br/&gt;Casa Editrice: The Pragmatic Programmers &lt;span class="caps"&gt;LLC&lt;/span&gt;.&lt;br/&gt;&lt;span class="caps"&gt;ISBN&lt;/span&gt;: 0-9766940-6-9&lt;br/&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
Una recensione di un libro su Ruby nel sito di un Java User Group? Perchè no? Inoltre il libro, almeno leggendo il titolo, parla di Enterprise Integration, un campo in cui Java la fa da padrone, almeno leggendo le parole dei markettari, quindi come minimo può essere utile per fare un confronto.

	&lt;p&gt;Premetto che, almeno per ora, non programmo in Ruby e mi sono limitato solamente all&amp;#8217;installazione di Ruby on Rails e a provare pochi banali esempi. Al momento non sono convinto dell&amp;#8217;effettiva utilità di Ruby e di Rails, se non per uno sviluppo molto rapido, ma di applicazioni piuttosto semplici e &amp;#8220;regolari&amp;#8221;. Credo che quando la complessità aumenta e l&amp;#8217;applicazione richiede funzionalità meno standard, gran parte dei vantaggi dell&amp;#8217;addozione di Ruby rispetto a Java si perdano, ed anzi lo sviluppo possa diventare più complicato.&lt;/p&gt;


	&lt;p&gt;...ma probabilmente mi sbaglio&amp;#8230;e mi auguro che la lettura di questo libro mi chiarisca un po&amp;#8217; le idee.&lt;/p&gt;


	&lt;p&gt;Questa non vuole essere una vera e propria recensione, ma piuttosto un diario di lettura. Sia perchè non ho voglia di scrivere qualcosa di troppo organizzato, sia perchè fra qualche giorno devo passare il libro al nostro amico Paul Given (in arte Paolo Donà), che sarà sicuramente capace di scrivere una recensione migliore della mia, dato che conosce meglio Ruby.&lt;/p&gt;


	&lt;p&gt;Ma passiamo al libro&amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;[14 Maggio 2006&amp;#8230;mattina]&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;Iniziato, e letti tutti d&amp;#8217;un fiato i primi due capitoli (Introduction e Databases). Secondo l&amp;#8217;introduzione il libro è adatto a me :) : &amp;#8221;...for experienced enterprise developers who know Java, C#, or C++ but don&amp;#8217;t know much Ruby&amp;#8230;&amp;#8221;. Perfetto! Nell&amp;#8217;introduzione non c&amp;#8217;e&amp;#8217; molto altro, se non una breve descrizione di cosa si intende per enterprise software ed enterprise integration. In tutto sette pagine, compresi i ringraziamenti e un diagramma che descrive l&amp;#8217;infrastruttura dell&amp;#8217;applicazione d&amp;#8217;esempio.&lt;/p&gt;


	&lt;p&gt;Il secondo capitolo, dedicato ai database, è suddiviso in due parti: la prima dedicata ai database relazionali, la seconda all&amp;#8217;accesso a servizi di directory mediante &lt;span class="caps"&gt;LDAP&lt;/span&gt;. L&amp;#8217;approccio usato dal libro, fedele allo stile della serie &amp;#8220;Pragmatic Bookshelf&amp;#8221;, è quello di mostrare molti esempi e molto codice, più che perdersi nella teoria. L&amp;#8217;accesso ai database viene spiegato usando, in sequenza, delle librerie ad-hoc per Oracle e MySQL (contemporaneamente), una libreria con un&amp;#8217;interfaccia generica indipendente dal DB (DBI), e un framework di mapping object-relational, ActiveRecord.&lt;/p&gt;


	&lt;p&gt;Nella parte su &lt;span class="caps"&gt;LDAP&lt;/span&gt;, si inizia con una breve introduzione alle caratteristiche di tali database. Ne viene poi mostrato l&amp;#8217;utilizzo in Ruby, prima con la libreria Ruby/LDAP, e in seguito mediante ActiveLDAP, l&amp;#8217;equivalente di ActiveRecord per il mapping object-hierachical.&lt;/p&gt;


	&lt;p&gt;Il tutto è un discreto tutorial, di livello base, sulle tecniche di accesso a tecnologie enterprise, database in questo caso, in Ruby. Purtroppo non è esattamente quello che mi sarei aspettato da un libro con questo titolo. Non vengono assolutamente affrontate le problematiche di integrazione. L&amp;#8217;unico spunto viene dato dal primo esempio, in cui si accede a dati presenti in due database differenti (uno Oracle e l&amp;#8217;altro MySQL), ma senza comunque affrontare molti dei problemi che questo può comportare. Ad esempio, non ci si preoccupa assolutamente della transazionalità, risolta semplicemente attivando l&amp;#8217;autocommit.&lt;/p&gt;


	&lt;p&gt;Anche nel caso di &lt;span class="caps"&gt;LDAP&lt;/span&gt;, ci si limita all&amp;#8217;accesso ad OpenLDAP, senza nessuna considerazione sulle problematiche di utilizzo di altri sistemi di directory.&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;[15 Maggio 2006&amp;#8230;mattina]&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;Il terzo capitolo si intitola &amp;#8220;Processing &lt;span class="caps"&gt;XML&lt;/span&gt;&amp;#8221;. Iniziare così il lunedì mattina? Noooo&amp;#8230;passiamo oltre&amp;#8230;cioè alla fine! :)&lt;/p&gt;


	&lt;p&gt;L&amp;#8217;ultimo capitolo, il sesto, si chiama &amp;#8220;Tools and Techniques&amp;#8221;...un po&amp;#8217; più stimolante.&lt;/p&gt;


	&lt;p&gt;La prima sezione tratta di I18n e L10n. A quanto pare è attualmente un punto dolente di Ruby, dato che il supporto è minimo e assolutamente non completo. Comunque ci si può riuscire&amp;#8230;facendo molta attenzione. A parte alcune soluzioni &amp;#8220;artigianali&amp;#8221; per il trattamento dei caratteri, e la citazione di un paio di librerie incomplete o non più mantenute (jcode e unicode), la parte interessante è l&amp;#8217;esame della libreria &lt;span class="caps"&gt;ICU4R&lt;/span&gt;, decisamente promettente. Per quanto riguarda la localizzazione dei messaggi, viene suggerita la libreria Ruby-GetText, porting in Ruby della &lt;span class="caps"&gt;GNU&lt;/span&gt; gettext. Francamente la trovo un po&amp;#8217; macchinosa. A parte le probabili attuali limitazioni di Ruby in questo campo, che probablmente spariranno col tempo, per quanto riguarda il libro, mi sarei aspettato almeno un accenno o un tentativo di integrazione con i sistemi di localizzazione di altri linguaggi, ad esempio con il meccanismo dei ResourceBundle di Java&amp;#8230;peccato.&lt;/p&gt;


	&lt;p&gt;Segue una sezione sul logging, con l&amp;#8217;esame delle librerie Logging e Log4R, l&amp;#8217;equivalente il Ruby delle varie Log4J, Log4cpp, ecc. Niente da dire. Peccato anche in questo caso che non ci sia un tentativo, di riutilizzo-conversione almeno dei file di conversione delle liberie delle altre famiglie.&lt;/p&gt;


	&lt;p&gt;Molto interessante invece la sezione sulla creazione di deamon e servizi, sia in ambiente Unix, sia in ambiente Windows. Non c&amp;#8217;e&amp;#8217; molto da dire su questo, ma, a parte RubyGems, per chi non lo conosce ancora, è sicuramente la sezione più eccitante del capitolo.&lt;/p&gt;


	&lt;p&gt;Passando al processo di Build e Deployment, esamina setup.rb, l&amp;#8217;equivalente in Ruby di autoconf, e RubyGems. Quest&amp;#8217;ultimo è un sistema assolutamente comodo di installazione e di deployment, e, malgrado la mia scarsissima esperienza (ma anche nel libro si afferma questo), credo stia diventando il meccanismo standard di distribuzione di software Ruby. Peccato venga trattato troppo brevemente, e solo per quanto riguarda l&amp;#8217;installazione delle Gems. Ci si dilunga invece su setup.rb, mostrando anche come costruire un pacchettizzazione di un piccolo progetto con questo tool.&lt;/p&gt;


	&lt;p&gt;La sezione successiva tratta dell&amp;#8217;automazione del progetto, cioè del processo di sviluppo. Viene suggerito sono Rake, l&amp;#8217;equivalente in Ruby di make. Paragonato con i tool presenti in Java (ad esempio Ant e Maven) è decisamente un passo indietro. Brevemente: non portabile e con una sintassi macchinosa come quella del make originale. Se non ricordo male, esistono altri tool a questo scopo (un grazie a chi me li ricorda :) ).&lt;/p&gt;


	&lt;p&gt;L&amp;#8217;ultima sezione è un tentativo di eseguire dei system test sulle applicazioni legacy. Il risultato è poco più dell&amp;#8217;automazione di una serie di diff sull&amp;#8217;output delle applicazioni, confrontato con l&amp;#8217;output di un&amp;#8217;esecuzione precedente. Niente che non potesse essere realizzato con un normale shell script, senza scomodare Ruby. Discutibile anche la scelta di utilizzare &lt;span class="caps"&gt;YAML&lt;/span&gt; per la descrizione del testcase, invece di un comune file &lt;span class="caps"&gt;XML&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;[16 Maggio 2006&amp;#8230;mattina]&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;Ok&amp;#8230;coraggio&amp;#8230;vediamo sto capitolo su &lt;span class="caps"&gt;XML&lt;/span&gt; (si capisce che odio l&amp;#8217;XML? :) ) ...ma purtroppo è un male necessario, e, quando non se ne abusa con l&amp;#8217;utilizzo, anche utile.&lt;/p&gt;


	&lt;p&gt;Il capitolo tutto sommato non è male. Ovviamente introduce, fortunatamente molto brevemente, le basi dell&amp;#8217;XML, per poi passare alla generazione, parsing e validazione in Ruby. C&amp;#8217;è anche una sezione dedicata a XPath, che forse poteva essere evitata, o almeno ridotta (a chi potrà mai interessare una tabella, che occupa metà di una pagina, degli operatori booleani di XPath: =, !=, &amp;gt;, ecc&amp;#8230;?)&lt;/p&gt;


	&lt;p&gt;Il primo approccio alla generazione è quello &amp;#8220;artigianale&amp;#8221; mediante concatenazione di stringhe. Ovviamente sconsigliato anche dallo stesso autore, ma è comunque un modo per concentrarsi sui problemi di generazione dell&amp;#8217;XML e un buon esempio di codice Ruby sul trattamento delle stringhe. Successivamente viene mostrato come si dovrebbe fare &amp;#8220;sul serio&amp;#8221;, mediante la libreria [REXML](http://www.ruby-doc.org/stdlib/libdoc/rexml/rdoc/) e mediante la libreria [Builder](http://builder.rubyforge.org/).&lt;/p&gt;


	&lt;p&gt;Passando alla elaborazione/parsing di documenti &lt;span class="caps"&gt;XML&lt;/span&gt;, viene mostrato l&amp;#8217;utilizzo di &lt;span class="caps"&gt;REXML&lt;/span&gt;, che supporta sia un tree parsing (proprietario, non &lt;span class="caps"&gt;DOM&lt;/span&gt; standard), sia due metodi di stream parsing, uno proprietario e quello &lt;span class="caps"&gt;SAX2&lt;/span&gt;. Il supporto a quest&amp;#8217;ultimo è molto buono, a parte ciò che ha a che fare con il &lt;span class="caps"&gt;DTD&lt;/span&gt;. Inoltre si evidenziano alcuni vantaggi derivanti dall&amp;#8217;utilizzo di un linguaggio dinamico come Ruby, che evita alcune delle &amp;#8220;noiosità&amp;#8221; sintattiche di un linguaggio statico e fortemente tipizzato come Java.&lt;/p&gt;


	&lt;p&gt;Viene poi mostrato l&amp;#8217;utilizzo di una libreria per l&amp;#8217;XML binding, tipo [XMLBeans](http://xmlbeans.apache.org), per capirci. La libreria si chiama [XmlSimple](http://rubyforge.org/projects/xml-simple/), ed è il porting in Ruby del modulo Perl &lt;span class="caps"&gt;XML&lt;/span&gt;:Simple. Peccato che il risultato sia assolutamente equivalente al progetto Perl originale: una serie di array e hashmap. Con le possibilità di generazione dinamica di Ruby mi sarei aspettato qualcosa di più. Possibile che non esista niente di meglio?&lt;/p&gt;


	&lt;p&gt;Segue la nota dolente dell&amp;#8217;attuale supporto &lt;span class="caps"&gt;XML&lt;/span&gt; di Ruby: la validazione. Paraticamente nulla, almeno per le librerie esaminate in questo libro. &lt;span class="caps"&gt;REXML&lt;/span&gt; supporta parzialmente &lt;span class="caps"&gt;RELAX NX&lt;/span&gt;, ma per nulla &lt;span class="caps"&gt;DTD&lt;/span&gt; e Schema. Se proprio serve (? certo che serve!), nel libro viene suggerito di invocare un tool esterno a riga di comando: xmllint.&lt;/p&gt;


	&lt;p&gt;In conclusione del capitolo vengono presentate, con esempi di codice Ruby, le alternative all&amp;#8217;uso di &lt;span class="caps"&gt;XML&lt;/span&gt;: CSV, Properties Files alla Java e (entusiasticamente) &lt;span class="caps"&gt;YAML&lt;/span&gt;. Personalmente non condivido l&amp;#8217;entusiasmo per &lt;span class="caps"&gt;YAML&lt;/span&gt;&amp;#8230;&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;[19 Maggio 2006&amp;#8230;mattina]&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;Mooolto interessante il capitolo 5 &amp;#8220;Low-Ceremony Distributed Applications&amp;#8221;. Con questa dicitura l&amp;#8217;autore intende applicazioni in grado di comunicare all&amp;#8217;esterno con dei protocolli molto semplici.&lt;/p&gt;


	&lt;p&gt;Viene quindi mostrato come costruire dei semplici &lt;span class="caps"&gt;TCP&lt;/span&gt; server multi-thread. Mediante la libreria gserver, il tutto si risolve in veramente poche righe di codice. Gi esempi costruiscono un semplice log server, di cui vengono scritti i client in Ruby (ovviamente), Java e Perl. In seguito al server vengono aggiunte le capacità di memorizzare le voci di log in un database con ActiveRecord, e di spedire un&amp;#8217;e-mail in caso di logging di un fatal error. La libreria usata in questo caso è [tmail](http://raa.ruby-lang.org/project/tmail/).&lt;/p&gt;


	&lt;p&gt;La seconda parte del capitolo si dedica invece ad applicazioni che comunicano tramite il protocollo &lt;span class="caps"&gt;HTTP&lt;/span&gt;. Viene quindi mostrato come scrivere dei client e dei server &lt;span class="caps"&gt;HTTP&lt;/span&gt;. Quest&amp;#8217;ultimo compito viene rese quasi banale dall&amp;#8217;utilizzo della libreria [WEBrick](http://www.webrick.org/). In pochi secondi si riesce a mettere in piedi un server &lt;span class="caps"&gt;HTTP&lt;/span&gt;, eventualmente con supporto &lt;span class="caps"&gt;SSL&lt;/span&gt;, vari tipi di autenticazione, la capacità di leggere le password dallo stesso file di Apache httpd, e molto altro.&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;[20 Maggio 2006&amp;#8230;mattina]&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;Lettura veloce del capitolo 5 &amp;#8220;Distributed Applications with &lt;span class="caps"&gt;RPC&lt;/span&gt;&amp;#8221;, dato che fra qualche ora devo mollare il libro a Paolo.&lt;/p&gt;


	&lt;p&gt;Anche questo, come il capitolo 4, è uno dei capitoli per cui secondo me vale la pena di leggere il libro. In una sessantina di pagine viene mostrato come usare in Ruby praticamente tutte le tecnologie per intefacciarsi con applicazioni scritte in altri linguaggi (e viceversa): &lt;span class="caps"&gt;XML&lt;/span&gt;-RPC, &lt;span class="caps"&gt;HTTP&lt;/span&gt;/REST, &lt;span class="caps"&gt;SOAP&lt;/span&gt;, CORBA e &lt;span class="caps"&gt;RMI&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;Interessante, soprattutto dal punto di vista dell&amp;#8217;integrazione, l&amp;#8217;approccio per &lt;span class="caps"&gt;CORBA&lt;/span&gt; (l&amp;#8217;uso di &lt;span class="caps"&gt;RMI&lt;/span&gt; non viene mostrato, dato che è ottenibile nella stessa maniera). 
Dato che non esiste, e probabilmente non esisterà mai, un&amp;#8217;implementazione di &lt;span class="caps"&gt;CORBA&lt;/span&gt; per Ruby&amp;#8230;viene usata l&amp;#8217;implementazione corba di Java, usando direttamente una &lt;span class="caps"&gt;JVM&lt;/span&gt; e le classi Java da Ruby, mediante [rjb](http://raa.ruby-lang.org/project/rjb/) (Ruby Java Bridge). rjb usa la Java Native Interface per istanziare qualunque classe Java da Ruby.&lt;/p&gt;


	&lt;p&gt;Infine viene mostrato l&amp;#8217;uso di [dRuby](http://raa.ruby-lang.org/project/druby/), l&amp;#8217;equivalente in Ruby dell&amp;#8217;RMI in Java&amp;#8230;decisamente sconsigliato, se l&amp;#8217;obiettivo è l&amp;#8217;interoperabilità con altri linguaggi.&lt;/p&gt;


	&lt;p&gt;Concludendo&amp;#8230;.il libro è sicuramente da consigliare, soprattutto a chi non conosce molto Ruby, e vuole farsi un&amp;#8217;idea di come potrebbe essere utilizzato in un ambiente eterogeneo. Il livello non è sicuramente avanzato, ma intermedio, e questo è un peccato: in alcuni argomenti si sarebbe potuto andare un po&amp;#8217; più a fondo. La critica principale da fare è che generalmente tende ad essere una mera esposizione con esempi delle librerie disponibili in Ruby per usare le tecnologie che normalmente si usano in ambiente enterprise. Mi sarei aspettato un&amp;#8217;attenzione maggiore ai problemi che si incontrano affrontando l&amp;#8217;integrazione in ambiente enterprise.&lt;/p&gt;


	&lt;p&gt;Ad esempio, nella sezione su &lt;span class="caps"&gt;SOAP&lt;/span&gt; viene semplicemente mostrato come creare un servizio &lt;span class="caps"&gt;SOAP&lt;/span&gt; in Ruby. Possibile che non ci sia proprio nessun problema o difficoltà ad usare tale servizio da client .NET o Java? O, viceversa, che non si debba usare qualche accortezza se dobbiamo accedere a servizi &lt;span class="caps"&gt;SOAP&lt;/span&gt; scritti in .NET o Java usando un client scritto in Ruby?&lt;/p&gt;</description>
      <pubDate>Sun, 14 May 2006 10:15:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:c80ab48e-02a6-406e-9ee7-79b28fb8d7b7</guid>
      <author>Lucio Benfante</author>
      <link>http://www.jugpadova.it/articles/2006/05/14/enterprise-integration-with-ruby</link>
      <category>Recensioni</category>
      <category>ruby</category>
      <category>enterprise</category>
      <category>integration</category>
      <trackback:ping>http://www.jugpadova.it/articles/trackback/360</trackback:ping>
    </item>
    <item>
      <title>JUGPD@LinuxPro</title>
      <description>&lt;p&gt;Sul numero di Gennaio di Linux PRO c&amp;#8217;&amp;egrave; una breve recensione della scorsa edizione di JavaPolis redatta a 10 mani da membri del Jug Padova!
Correte in edicolaaaaaaa!!!&lt;/p&gt;
</description>
      <pubDate>Mon, 16 Jan 2006 16:40:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:1fb3fd66-cb66-45c6-88f1-feac73e54393</guid>
      <author>Paolo Dona'</author>
      <link>http://www.jugpadova.it/articles/2006/01/16/jugpd-linuxpro</link>
      <category>Recensioni</category>
      <category>rivista</category>
    </item>
    <item>
      <title>Spring - A Developer's Notebook</title>
      <description>&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="/files/0596009100.jpg"&gt;&lt;img src="/files/0596009100.jpg" alt="Cover: Spring - A Developer's Notebook" width="120" border="0"/&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Titolo: Spring - A Developer&amp;#8217;s Notebook&lt;br/&gt;Autori: Bruce A. Tate e Justin Gehtland&lt;br/&gt;Pagine: 192&lt;br/&gt;Anno: 2005&lt;br/&gt;Casa Editrice: O&amp;#8217;Reilly Media, Inc.&lt;br/&gt;ISBN: 0-596-00910-0&lt;br/&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;Spring-A Developer&amp;#8217;s Notebook &amp;egrave; una sintetica guida introduttiva a Spring e ai suoi principali componenti. Il libro cerca di mostrare i vantaggi dell&amp;#8217;uso di Spring per implementare le diverse parti che tipicamente vengono realizzate durante lo sviluppo di un&amp;#8217;applicazione. &lt;/p&gt;
&lt;p&gt;Il primo capitolo introduce, praticamente con solo esempi e pochissima teoria, a quella che &amp;egrave; la funzionalit&amp;agrave; di base di Spring, cio&amp;egrave; l&amp;#8217;iniezione delle dipendenze, ponendo le basi per l&amp;#8217;esempio che pervade l&amp;#8217;intero libro, un&amp;#8217;applicazione Web per gestire il noleggio di biciclette.&lt;/p&gt;

&lt;p&gt;Nei due capitoli successivi ci si occupa dello strato di interfaccia utente, inizialmente usando il Web MVC Framework di Spring, e successivamente mostrando l&amp;#8217;integrazione di Spring con Struts e JSF.&lt;/p&gt;

&lt;p&gt;Passando allo strato di persistenza, vengono inizialmente mostrati i vantaggi dell&amp;#8217;uso di Spring per interagire direttamente con JDBC e in seguito con i principali framework di persistenza: iBATIS, JDO e Hibernate.&lt;/p&gt;

&lt;p&gt;Nei capitoli successivi si tratta del sistema di log, introdotto mediante Spring AOP, della transazionalit&amp;agrave; programmatica e dichiarativa, della sicurezza con ACEGI, dei servizi di messaggistica, di invocazione remota e JMS.&lt;/p&gt;

&lt;p&gt;L&amp;#8217;ultimo capitolo ritorna sullo strato di interfaccia, mostrando la realizzazione di un rich-client Swing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&amp;egrave; un libro molto pratico e si arriva subito al sodo, senza perdere tempo con la teoria&lt;/li&gt;
&lt;li&gt;l&amp;#8217;esempio unico contribuisce a legare i vari capitoli, fornendo un filo conduttore e dando l&amp;#8217;impressione di completezza, pur nella sua semplicit&amp;agrave;&lt;/li&gt;
&lt;li&gt;alla fine di ogni capitolo viene mostrato come scrivere i test per il codice appena descritto&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Contro:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a volte si sente la mancanza di un approfondimento: i vari argomenti sono trattati ad un livello realmente introduttivo. In questo, come libro introduttivo, raggiunge pienamente il suo scopo, ma a volte si vorrebbe andare un po&amp;#8217; pi&amp;ugrave; a fondo.&lt;/li&gt;
&lt;li&gt;per mostrare i vantaggi dell&amp;#8217;utilizzo di Spring, spesso dedica troppo spazio a come si programmerebbe senza Spring. Ad esempio, delle diciassette pagine del primo capitolo solo due parlano realmente di Spring.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr/&gt;

&lt;p&gt;Questo libro fa parte della &lt;b&gt;JUG Padova Library&lt;/b&gt;.&lt;br/&gt;
Attualmente &amp;egrave; affidato in custodia a &lt;a href="mailto:lucio.benfante@jugpadova.it"&gt;Lucio Benfante&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Sat, 26 Nov 2005 17:13:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:4b491000-c9b0-4424-9de7-da54d48d16dc</guid>
      <author>Lucio Benfante</author>
      <link>http://www.jugpadova.it/articles/2005/11/26/spring-a-developers-notebook</link>
      <category>Recensioni</category>
      <category>book</category>
      <category>spring</category>
    </item>
  </channel>
</rss>
