<?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="/rss20.xsl" media="screen"?> <rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"> <channel> <title>Programmiamo</title> <description>Blog di programmazione di Open Community</description> <link>http://programmiamo.blogspirit.com/</link> <lastBuildDate>Sun, 11 May 2008 23:46:19 +0200</lastBuildDate> <generator>blogSpirit.com</generator> <copyright>All Rights Reserved</copyright>  <item> <guid isPermaLink="true">http://programmiamo.blogspirit.com/archive/2006/04/26/castor-da-xml-a-java-bean-e-viceversa.html</guid> <title>Castor. Da XML a Java Bean e viceversa.</title> <link>http://programmiamo.blogspirit.com/archive/2006/04/26/castor-da-xml-a-java-bean-e-viceversa.html</link> <author>noreply@blogspirit.com (Salvatore D'Angelo)</author>   <category>Programmazione XML</category>   <pubDate>Wed, 26 Apr 2006 19:50:00 +0200</pubDate> <description> &lt;p&gt;&lt;img src=&quot;http://programmiamo.blogspirit.com/images/medium_castor.2.jpg&quot; alt=&quot;&quot; style=&quot;border-width: 0pt; margin: 0.7em 0pt;&quot; /&gt;&lt;br /&gt; &lt;a href=&quot;http://jspcart.neurospeech.com/&quot;&gt;JSPCart&lt;/a&gt; utilizza per la configurazione del negozio online 3 file XML. La prima volta che ho visto il codice sono rimasto esterrefatto da come veniva letta la configurazione. Inizialmente pensavo che ci fosse un parser SAX o DOM, invece nemmeno quello, il codice effettuava (e lo fa tuttora) il parsing del file a mano.&lt;/p&gt; &lt;p&gt;So già cosa state pensando: &lt;b&gt;roba da matti!!!&lt;/b&gt;&lt;/p&gt; &lt;p&gt;Oggi quando mi trovo ad affrontare la problematica di mappare file XML in Java Bean e viceversa evito, se possibile, i parser &lt;a href=&quot;http://www.saxproject.org/&quot;&gt;SAX&lt;/a&gt; e &lt;a href=&quot;http://www.w3.org/DOM/&quot;&gt;DOM&lt;/a&gt; e cerco di utilizzare tool di mapping come &lt;a href=&quot;http://dev2dev.bea.com/pub/a/2004/05/sdo_beatty.html&quot;&gt;SDO&lt;/a&gt;, &lt;a href=&quot;http://java.sun.com/webservices/jaxb/&quot;&gt;JAXB&lt;/a&gt; o &lt;a href=&quot;http://www.castor.org/&quot;&gt;&lt;b&gt;Castor&lt;/b&gt;&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Ad oggi &lt;a href=&quot;http://programmiamo.blogspirit.com/archive/2006/01/22/bazaar-un-negozio-online-gratuito.html&quot;&gt;Bazaar&lt;/a&gt; preserva la codifica manuale ma, appena possible, modificherò il codice in modo da utilizzare Castor.&lt;/p&gt; &lt;p&gt;Dalle premesse penso che è chiaro che Castor è un tool per il binding XML -&amp;gt; Java Bean e viceversa.&lt;br /&gt; Lavorare con Castor è sicuramente più semplice che lavorare con DOM o SAX (in alcuni casi).&lt;/p&gt; &lt;p&gt;Castor utilizza un file di mapping per mappare gli element XML nelle property Java Bean. Esiste, tuttavia, una modalità più rapida che consente la generazione automatica del codice a partire dallo schema.&lt;/p&gt; &lt;p&gt;I seguenti tutorials illustrano entrambe le modalità.&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://www.geocities.com/sireenmalik/details.html&quot;&gt;Tutorial 1&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://www.onjava.com/pub/a/onjava/2001/10/24/xmldatabind.html&quot;&gt;Tutorial 2&lt;/a&gt;&lt;/p&gt; &lt;br /&gt; </description>  </item>  <item> <guid isPermaLink="true">http://programmiamo.blogspirit.com/archive/2006/04/17/periodo-di-assenza.html</guid> <title>Periodo di assenza</title> <link>http://programmiamo.blogspirit.com/archive/2006/04/17/periodo-di-assenza.html</link> <author>noreply@blogspirit.com (Salvatore D'Angelo)</author>   <category>Vari</category>   <pubDate>Mon, 17 Apr 2006 11:26:21 +0200</pubDate> <description> &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style=&quot;text-align: left;&quot;&gt;&lt;img style=&quot;border-width: 0pt; margin: 0.7em 0pt;&quot; alt=&quot;&quot; src=&quot;http://programmiamo.blogspirit.com/images/medium_pasqua.2.jpg&quot; /&gt;&lt;/div&gt; Ciao a tutti i lettori, &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;in quest'ultime settimane sono stato un pò impegnato con il lavoro. Questo mi ha impedito di scrivere post su questo blog e me ne dispiace. In questo periodo mi sto impegnando molto nella progettazione UML per un prodotto nel laboratorio dove lavoro. Farò tesoro di quest'esperienza che spero di condividere presto con voi.&lt;/p&gt; &lt;p&gt;Appena passati questi giorni di festa mi piacerebbe parlare di alcuni tool come &lt;b&gt;Castor&lt;/b&gt; (sto già iniziando a scrivere qualcosa nel wiki), di continuare i post relativi a &lt;b&gt;Gollumix&lt;/b&gt; e &lt;b&gt;Trouts War&lt;/b&gt;, iniziare a parlare di &lt;b&gt;compilatori&lt;/b&gt;, &lt;b&gt;video editing, progettazione UML&lt;/b&gt; (use case model, analysis model, design e implementation model) e molto altro ancora.&lt;/p&gt; &lt;p&gt;In attesa di tutto ciò vi auguro Buone Feste.&lt;br /&gt; Salvatore&amp;nbsp;&lt;/p&gt; </description>  </item>  <item> <guid isPermaLink="true">http://programmiamo.blogspirit.com/archive/2006/03/30/un-semplice-ocr-in-java.html</guid> <title>Un semplice OCR in Java</title> <link>http://programmiamo.blogspirit.com/archive/2006/03/30/un-semplice-ocr-in-java.html</link> <author>noreply@blogspirit.com (Salvatore D'Angelo)</author>   <category>Intelligenza Artificiale</category>   <pubDate>Thu, 30 Mar 2006 14:05:00 +0200</pubDate> <description> &lt;div style=&quot;text-align: left;&quot;&gt;&lt;img src=&quot;http://programmiamo.blogspirit.com/images/medium_ocr.2.jpg&quot; alt=&quot;&quot; style=&quot;border-width: 0pt; margin: 0.7em 0pt;&quot; /&gt;&lt;/div&gt; Oggi volevo segnalarvi un &lt;a href=&quot;http://jdj.sys-con.com/read/36985.htm&quot;&gt;articolo&lt;/a&gt; su Java Developer Journal inerente ad un programma &lt;a href=&quot;http://it.wikipedia.org/wiki/OCR&quot;&gt;Optical Character Recognition&lt;/a&gt; (OCR) molto semplice scritto in Java. &lt;p&gt;Un programma OCR è, in pratica, un software capace di riconoscere il testo scritto a mano.&lt;/p&gt; &lt;p&gt;Il programma, in realtà, riconosce solo singoli caratteri, quindi va considerato solo come un esempio.&lt;/p&gt; &lt;p&gt;Il programma si basa su un particolare tipo di rete neurale detta di &lt;a href=&quot;http://www.synaptics.org/neurbook/capitol4.htm&quot;&gt;Kohonen&lt;/a&gt; (dal nome del &lt;a href=&quot;http://www.cis.hut.fi/research/som-research/teuvo.html&quot;&gt;professore&lt;/a&gt; che l'ha ideata).&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://res.sys-con.com/story/36985/heaton.zip&quot;&gt;Qui&lt;/a&gt; potete scaricare il codice relativo all'articolo.&lt;/p&gt; &lt;p&gt;1. Scaricate il file .zip;&lt;br /&gt; 2. scompattatelo in una cartella;&lt;br /&gt; 3. posizionatevi nella cartella;&lt;br /&gt; 4. compilate il codice con il comando: javac *.java, eventuali errori di compilazione sono dovute a new line dentro le stringhe, per risolvere il problema andate sulla riga segnalata dal compilatore e mettere la stringa su un'unica riga;&lt;br /&gt; 5. rimuovete il file OCR.jar perchè corrotto (il file conteneva già il codice compilato);&lt;br /&gt; 6. eseguite il codice con il comando: java MainEntry.&lt;/p&gt; &lt;p&gt;Dovrebbe comparire una dialog box dove voi scrivete il carattere e il tool lo riconosce. Vi consiglio di addestrare la rete con alcuni esempi, perchè gli esempi di default non sempre si adattono alla vostra scrittura.&lt;/p&gt; &lt;p&gt;In quest'altro &lt;a href=&quot;http://www.chez.com/pma/ocr/ocr-11.htm&quot;&gt;articolo&lt;/a&gt; potete approfondire il tema OCR analizzando tutti gli steps che un programma di questo tipo dovrebbe eseguire.&lt;/p&gt; </description>  </item>  <item> <guid isPermaLink="true">http://programmiamo.blogspirit.com/archive/2006/03/28/rilascio-bazaar-1-0-pre5.html</guid> <title>Rilascio Bazaar 1.0 pre5</title> <link>http://programmiamo.blogspirit.com/archive/2006/03/28/rilascio-bazaar-1-0-pre5.html</link> <author>noreply@blogspirit.com (Salvatore D'Angelo)</author>   <category>Programmazione J2EE</category>   <pubDate>Tue, 28 Mar 2006 18:40:00 +0200</pubDate> <description> &lt;p&gt;&lt;img src=&quot;http://programmiamo.blogspirit.com/images/medium_bazaar.2.jpg&quot; alt=&quot;&quot; /&gt;&lt;br /&gt; &lt;br /&gt; Sono felice di annunciarvi il rilascio di &lt;b&gt;&lt;a href=&quot;http://programmiamo.blogspirit.com/archive/2006/01/22/bazaar-un-negozio-online-gratuito.html&quot; target=&quot;_blank&quot;&gt;Bazaar&lt;/a&gt; 1.0 pre5&lt;/b&gt;.&lt;br /&gt; &lt;br /&gt; Il war file (che contiene anche il codice) è possibile scaricarlo da &lt;a href=&quot;http://bazaar.homelinux.net:8080/wiki/Wiki.jsp?page=Download&quot; target=&quot;_blank&quot;&gt;qui&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://bazaar.homelinux.net:8080/wiki/Wiki.jsp?page=News&quot; target=&quot;_blank&quot;&gt;Qui&lt;/a&gt; trovate le novità offerte da questa nuova release.&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://bazaar.homelinux.net:8080/bazaar/&quot; target=&quot;_blank&quot;&gt;Qui&lt;/a&gt; potete vedere la demo del prodotto.&lt;/p&gt; &lt;p&gt;&lt;b&gt;Aggiornamento 1 29/3/2006&lt;/b&gt;&lt;br /&gt; Mi scuso per i links non funzionanti. Ho avuto problemi con il dyndns, sistemerò tutto nel pomeriggo.&lt;br /&gt; Scusate per il disagio.&lt;/p&gt; &lt;p&gt;&lt;b&gt;Aggiornamento 2 29/3/2006&lt;/b&gt;&lt;br /&gt; Ora i links dovrebbero funzionare. Mi scuso ancora per il disagio.&amp;nbsp;&lt;/p&gt; </description>  </item>  <item> <guid isPermaLink="true">http://programmiamo.blogspirit.com/archive/2006/03/24/pluggability.html</guid> <title>Pluggability</title> <link>http://programmiamo.blogspirit.com/archive/2006/03/24/pluggability.html</link> <author>noreply@blogspirit.com (Salvatore D'Angelo)</author>   <category>Vari</category>   <pubDate>Fri, 24 Mar 2006 15:30:00 +0100</pubDate> <description> &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div style=&quot;text-align: left;&quot;&gt;&lt;img style=&quot;border-width: 0pt; margin: 0.7em 0pt;&quot; alt=&quot;&quot; src=&quot;http://programmiamo.blogspirit.com/images/medium_eclipse.2.jpg&quot; /&gt;&lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Oggi volevo segnalarvi quest'&lt;a href=&quot;http://www.eclipse.org/articles/Article-Plug-in-architecture/plugin_architecture.html&quot;&gt;articolo&lt;/a&gt; sui meccanismi di pluggability di eclipse che considero molto interessante.&lt;/p&gt; &lt;p&gt;Il discorso è semplice. C'è un core con un set di extension points che espongono determinate interfacce. Chi vuole estendere eclipse descrive il suo plugin attraverso un file XML e implementa gli extension points.&lt;/p&gt; &lt;p&gt;Pubblico quest'articolo perchè in futuro vi illustrerò un'idea su come implementare un'architettura di pluggability per &lt;a href=&quot;http://programmiamo.blogspirit.com/archive/2006/01/22/bazaar-un-negozio-online-gratuito.html&quot;&gt;Bazaar&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Bazaar ha ereditato molto codice da &lt;a href=&quot;http://jspcart.neurospeech.com/&quot;&gt;JSPCart&lt;/a&gt; e implementa per intero un servizio di shopping online, tuttavia sappiamo che le esigenze dei negozianti potrebbero essere le più diverse.&lt;/p&gt; &lt;p&gt;Io oggi mi immagino un futuro Bazaar così organizzato.&lt;/p&gt; &lt;p&gt;&lt;b&gt;CORE&amp;nbsp;&lt;/b&gt;&lt;br /&gt; Il core avrà solo i menù, il layout, la gestione dei temi e la gestione della pluggability.&lt;/p&gt; &lt;p&gt;&lt;b&gt;PLUGIN CATALOGO&amp;nbsp;&lt;/b&gt;&lt;br /&gt; La gestione del catalogo dei prodotti potrebbe essere un plugin che consente all'amministratore di caricare prodotti e ai clienti di visualizzarli.&lt;/p&gt; &lt;p&gt;&lt;b&gt;PLUGIN CARRELLO (dipende da CATALOGO)&lt;/b&gt;&lt;br /&gt; Ci potrebbe essere poi dei negozianti che oltre al catalogo vogliono anche la gestione del carrello, che diventerà un nuovo plugin. Questo servirà ai clienti per eseguire ordini.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;PLUGIN CASSA (dipendente da CARRELLO)&lt;/b&gt;&lt;br /&gt; Ci potrebbero essere dei negozianti che desiderano dare la possibilità ai propri clienti di pagare direttamente online. I vari metodi di pagamento potrebbero essere dei plugin a loro volta.&lt;/p&gt; &lt;p&gt;&lt;b&gt;PLUGIN PRODOTTI PIU' VENDUTI&lt;/b&gt; &lt;b&gt;(dipendente da CARRELLO)&lt;/b&gt;&lt;br /&gt; Un negoziante potrebbe chiedere di visualizzare i 10 prodotti più venduti dal negozio. Anche questo potrebbe essere un plugin.&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;b&gt;NEWS, RSS e BLOG&lt;/b&gt;&lt;br /&gt; Un negoziante potrebbe decidere di pubblicare news, rss o un proprio blog. Anche questo diventa un plugin.&lt;/p&gt; &lt;p&gt;&lt;b&gt;WIZARD ASSEMBLA COMPUTER&lt;/b&gt; &lt;b&gt;(dipende da CATALOGO)&lt;/b&gt;&lt;br /&gt; Un negoziante di computer potrebbe decidere di fornire un wizard che consenta al cliente di assemblarsi un computer velocemente. Ovviamente ci sarà un plugin apposta usato solo da questa categoria di negozianti.&amp;nbsp;&lt;/p&gt; &lt;p&gt;Potrei continuare all'infinito. Penso che il concetto di pluggability (che vale per qualsiasi tipo di applicazione) possa essere un valido tema di discussione per questo blog in futuro.&lt;br /&gt;&lt;/p&gt; </description>  </item>  <item> <guid isPermaLink="true">http://programmiamo.blogspirit.com/archive/2006/03/23/dao-con-classi-pojo.html</guid> <title>DAO con classi POJO</title> <link>http://programmiamo.blogspirit.com/archive/2006/03/23/dao-con-classi-pojo.html</link> <author>noreply@blogspirit.com (Salvatore D'Angelo)</author>   <category>Design Patterns</category>   <pubDate>Thu, 23 Mar 2006 12:15:00 +0100</pubDate> <description> &lt;p&gt;&lt;img style=&quot;border-width: 0pt; margin: 0.7em 0pt;&quot; alt=&quot;&quot; src=&quot;http://programmiamo.blogspirit.com/images/medium_corej2ee.2.jpg&quot; /&gt;&lt;/p&gt; &lt;p&gt;Oggi volevo mostrarvi una mia implementazione del DAO pattern.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;Nei post precedenti vi ho fornito alcuni link con la descrizione dei &lt;a href=&quot;http://programmiamo.blogspirit.com/archive/2006/01/17/core-j2ee-patterns.html&quot;&gt;J2EE patterns&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Per aiutarvi a comprendere meglio il pattern DAO, ho pensato che sarebbe stato utile illustrarvi come io l'implemento. Ovviamente non voglio esaurire con questo post tutte le problematiche di persistenza utilizzando l'approccio DAO con classi POJO, ma è una buona base di partenza. In futuro discuteremo estensioni e, magari, anche approcci alternativi.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;Come al solito trovate l'articolo nel nostro &lt;a href=&quot;http://programmiamo.pbwiki.com/Persistenza%20con%20DAO&quot;&gt;wiki&lt;/a&gt;.&lt;/p&gt; &lt;br /&gt; &lt;p&gt;&lt;b&gt;Aggiornamento&lt;/b&gt;&lt;br /&gt; Volevo segnalarvi questo tool a pagamento chiamato &lt;a href=&quot;http://www.codefutures.com/products/firestorm/&quot;&gt;Firestorm&lt;/a&gt;. E' un DAO generator che può generare DAO partendo da un database esistente (o definito tramite file xml). Può generare codice per diversi back end: JDBC (molti database), Hibernate, Entity Bean, etc.&lt;/p&gt; &lt;p&gt;Vi consiglio di scaricare la &lt;b&gt;Standard Edition&lt;/b&gt; (se vi interessa JDBC), e provare a fare il reverse engineering di tabelle (max 3 se si usa l'evaluation license) di un database e studiarvi il codice che, secondo me, va sempre adattato alle proprie esigenze.&lt;br /&gt;&lt;/p&gt; </description>  </item>  <item> <guid isPermaLink="true">http://programmiamo.blogspirit.com/archive/2006/03/21/wyswyg-html-editor-per-i-vostri-siti-web.html</guid> <title>WYSWYG HTML Editor per i vostri siti web</title> <link>http://programmiamo.blogspirit.com/archive/2006/03/21/wyswyg-html-editor-per-i-vostri-siti-web.html</link> <author>noreply@blogspirit.com (Salvatore D'Angelo)</author>   <category>Programmazione J2EE</category>   <pubDate>Tue, 21 Mar 2006 16:10:00 +0100</pubDate> <description> &lt;div style=&quot;text-align: left;&quot;&gt;&lt;img src=&quot;http://programmiamo.blogspirit.com/images/medium_tinymce.2.jpg&quot; alt=&quot;&quot; style=&quot;border-width: 0pt; margin: 0.7em 0pt;&quot; /&gt;&lt;/div&gt; In questi ultimi tempi ho ricevuto alcune richeste di hosting di &lt;b&gt;&lt;a href=&quot;http://programmiamo.blogspirit.com/archive/2006/01/22/bazaar-un-negozio-online-gratuito.html&quot;&gt;Bazaar&lt;/a&gt;&lt;/b&gt; sul mio server che volentieri effettuo gratuitamente, finchè non si satura la banda. Se anche voi avete amici o parenti che vogliono aprire un negozio online scrivetemi una mail a questo &lt;a href=&quot;mailto:%20koala.gnu@tiscali.it&quot;&gt;indirizzo&lt;/a&gt;. &lt;p&gt;Ogni volta che ricevo una richiesta devo svolgere alcune attività per ora non automatizzate. Il mio obiettivo è quello di deployare l'applicazione e lasciare all'amministratore l'onere di personalizzarlo.&lt;/p&gt; &lt;p&gt;Bazaar è personalizzabile al 95%, l'altro 5% richiede il mio intervento nelle seguenti attività:&lt;/p&gt; &lt;p&gt;- inserire le &lt;a href=&quot;http://bazaar.homelinux.net:8080/mediatek/agreement.do&quot;&gt;condizioni di vendita&lt;/a&gt;;&lt;/p&gt; &lt;p&gt;- inserire i &lt;a href=&quot;http://bazaar.homelinux.net:8080/mediatek/contact.do&quot;&gt;contatti&lt;/a&gt;;&lt;/p&gt; &lt;p&gt;- inserire le &lt;a href=&quot;http://bazaar.homelinux.net:8080/mediatek/about.do&quot;&gt;informazioni del negozio&lt;/a&gt;;&lt;/p&gt; &lt;p&gt;- personalizzazione homepage (con Bazaar-pre5 lo farà l'amministratore);&lt;/p&gt; &lt;p&gt;Ora nella prox release metterò nella fase di amministrazione un pannello di controllo per configurare quelli che sono i parametri del negozio. Tra questi parametri ci sono queste 3 descrizioni.&lt;/p&gt; &lt;p&gt;Ora il testo di queste descrizioni dovrebbe essere formattato (cioè usare grassetto, links, ecc.).&lt;/p&gt; &lt;p&gt;Usando semplici Text Area l'amministratore dovrebbe usare codice HTML per formattare il testo, il che è una pazzia. Perchè un amministratore Bazaar dovrebbe conoscere l'HTML?&lt;/p&gt; &lt;p&gt;Ho pensato, quindi, che nella prox release queste text areas dovevano essere editate attraverso un editor WYSWYG. Mi sono messo alla ricerca e ho trovato questo tool gratuito: &lt;a href=&quot;http://tinymce.moxiecode.com/&quot;&gt;TinyMCE&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;TinyMCE è rilasciato con licenza LGPL, usa javascript ed è altamente configurabile. Io non avrò bisogno di molte funzionalità, mi servirà solo: grassetto, corsivo, sottolineato, font e gestione links.&lt;/p&gt; &lt;p&gt;Non ho ancora provato questo tool, ma promette bene. Appena rilascierò Bazaar-pre5 (a giorni) e mi dedicherò alla nuova versione, ci giocherò un pò e vi farò sapere come è andata.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;PS&lt;/b&gt;&lt;br /&gt; Se conoscete prodotti alternativi non esitatea segnalarmeli.&lt;/p&gt; </description>  </item>  </channel> </rss> 