Archivio per la categoria 'Java'

Prossimo JUG Genova meeting

Il prossimo Venerdì (13 Marzo 2009) si terrà presso il DIST la riunione del JUG Genova. Christian Frei, in rappresentanza del JUG Zurigo, verrà a presentare la conferenza Jazoon 2009. Giampiero Granatella parlerà di Alfresco. Infine ci sarà l’estrazione di una licenza JetBrains.

Partecipate numerosi. L’annuncio ufficiale è su http://juggenova.net/.

DSL e iText al JUG meeting del 20/01/2009

Il prossimo 20 Gennaio si terrà presso il DISI (via Dodecanneso 35, ad Albaro) la riunione del JUG Genova.
I temi saranno:

  • DSL con Java scripting framework
  • Generazione di pdf con iText

I DSL (Domain Specific Languages) sono un tema interessante. Per chi non li conoscesse, i DSL sono linguaggi ad-hoc per problemi specialistici. Per esempio il linguaggio R è un DSL per elaborazioni statistiche. Senza andare nell’esoterico, anche l’SQL o le regular expression possono essere considerati linguaggi specialistici. La loro caratteristica è quella di offrire semplicità e rapidità di sviluppo nel loro campo e di contrapporsi ai linguaggi generalistici (C e Java per esempio).

Cosa c’entrano i DSL con Java? Beh, non lo so e quindi sono curioso di sentire la presentazione :-)
Quello che so è che la tendenza dei DSL è quella di permettere ad ognuno di crearsi un proprio linguaggio adatto ai propri scopi. Per rendere questo possibile servono buoni strumenti, parser/compilatori ed ambienti runtime (leggi: virtual machine). E in questo campo Java ho molto da offrire.

L’invito ufficiale alla riunione è sulla nostra lista JUG. Partecipate numerosi!

NetBeans Demo Camp domani (Martedì) al JUG Genova

Si terrà domani (Martedì 25 Novembre 2008) il NetBeans Demo Camp in occasione del decimo compleanno di NetBeans. L’evento sarà ospitato da JUG Genova e si terrà presso NIS in Corso Torino 14/3.
L’annuncio ufficiale è sulla mailing list del gruppo JUG.

Presentazioni imperdibili by Fabrizio Giudici e Giampaolo Melis. Patecipate numerosi!

Dependency Injection: belle parole o fatti?

Mi trovo a disagio a parlare di Inversion of Control (IoC), Dependency Injection (DI) e delle tecnologie che le implementano (Spring, PicoContainer, ecc). Non mi preoccupa il fatto che siano temi di moda e che quindi parlarne criticamente sia impopolare. Mi preoccupa il fatto che siano un po’ come un pozzo dei desideri: ognuno ci vede quello vuole. Quindi quello che vuol dire per me può non aver senso per un altro e viceversa, ma entrambi in un certo senso avremmo ragione. Cercherò di spiegarmi. Sarò criticissimo, ma costruttivamente :-)
Leggi il testo completo »

70k linee di codice, tangle architetturali e le sfide del refactoring

Le mie slide dall’ultima riunione del JUG Genova.

View SlideShare presentation or Upload your own. (tags: software design)

Prossimo incontro del JUG Genova il 16 Settembre 2008

Ripubblico qui sotto l’annuncio pubblicato sulla lista del Jug Genova.
Passate parola e partecipate numerosi!!!

Il prossimo meeting del JUG Genova si terrà il 16 Settembre 2008 ore 18:30 presso l’auletta al terzo piano del DIST (Facoltà di Ingegneria)
Via Opera Pia 13, GENOVA (zona Albaro) -
Mappa

Parleremo di:
* 70k linee di codice, tangle architetturali e le sfide del refactoring (Paolo Predonzani)
* news and reports from Silicon Valley (Corrado Alesso)

Seguirà una discussione delle problematiche legate a design e refactoring di applicazioni Java in generale.

La partecipazione è libera e gratuita. Se pensi di partecipare, registrati su JugEvents.

Se vuoi unirti a noi per una pizza al termine dell’incontro, aggiungi “pizza” al tuo cognome al momento della registrazione.

Per aggiornamenti vedi:
* http://juggenova.net
* http://upcoming.yahoo.com/group/3592/
* http://jugevents.jugpadova.it/jugevents/eve…

Git, Mercurial e Bazaar a confronto

Ho discusso in un precedente blog i limiti di CVS e Subversion. In particolare ho evidenziato come i branch risultano difficili con CVS/SNV e di conseguenza poco utilizzati dai programmatori, anche se il loro utilizzo porterebbe diversi vantaggi.

La soluzione a questi problemi è arrivata negli ultimi anni da tre strumenti - Git, Mercurial e Bazaar - che si pongono come obiettivo non solo di semplificare il branching ma di dare una nuova prospettiva all’intero concetto di versionamento.
Leggi il testo completo »

Prestazioni di iBatis rispetto a JDBC

Ho fatto un veloce test per verificare l’overhead di iBatis rispetto a dei semplici statement JDBC. Ho scritto una query che estrae un solo record dato l’id. Ho scritto un programmino Java per far girare la query 100 mila volte sia in modo iBatis che in modo JDBC. L’id del record è sempre rimasto uguale: questo per garantire che il db utilizzasse sempre la sua cache in memoria. Il db utilizzato è stato Postgresql.

Ho ripetuto l’esperimento più volte e fatto la media. I tempi registrati (in microsecondi) sono stati i seguenti:

  • iBatis: 312usec
  • JDBC: 304usec

Quindi, sì, iBatis ha un impatto sulle prestazioni ma è solo del 3%, quindi minimo.

Un’ultima osservazione: facendo girare la query in psql e registrando i tempi con “explain analyze” i tempi sono costantemente di 51 microsecondi. Cioè Java vede tempi sei volte più lunghi di quello che il db è in grado di fornire. Hmmmm…

Perché CVS e Subversion non sono adatti ad un buon sviluppo del software

CVS e Subversion (SVN) sono strumenti di versionamento diffusissimi in ambito software. In quanto strumenti, dovrebbero aiutare il programmatore sollevandolo da compiti ripetitivi e proni a errori. In questo blog mostro come, utilizzando CVS e SVN al meglio, si ottenga esattamente l’effetto opposto, cioè un aggravio per il programmatore.
Leggi il testo completo »

Commons BeanUtils: accedere ai JavaBean con minimo sforzo

Apache Commons è una famiglia di progetti mirati a creare componenti Java di facile uso e riuso. Si tratta di componenti generici, piuttosto di base e generalmente ben testati di cui è utile conoscere l’esistenza per risparmiare tempo ed evitare di reinventare la ruota nei nostri progetti.

In questo blog mostro l’utilità di Commons BeanUtils, una libreria fondamentale della famiglia Commons. Leggi il testo completo »