mercoledì 28 marzo 2007

Rilasciato JBoss Seam 1.2.1

Rilasciata la nuova versione di JBoss Seam: la 1.2.1

JBoss Seam è un framework opensource per la realizzazione di applicazioni web, che sposa in toto la filosofia EJB3.
Le singole pagine, le conversazioni, gli utenti, ecc ecc sono rappresentati come classi Java standard (i famosi POJO) decorate da alcune annotation. Quindi: no implementazioni di interfacce, pattern complessi o altre amenità. L'application server (in questo caso JBoss) si cura di realizzare a runtime, in modo efficiente, quanto si "dichiara" nelle annotation.

In quest'ultima versione è stata aggiunta la classica feature edit-save-and-refresh dei linguaggi web interpretati come PHP o ASP. Nel caso di JBoss Seam si traduce nella possibilità di modificare il codice java, ad esempio via Eclipse, e quindi ottenere la nuova applicazione con un semplice refresh del browser.

Seam farà molta strada.

martedì 27 marzo 2007

Constraint Programming e Scheduling con JOpt

Ho scoperto una giovane libreria molto interessante che implementa gli algoritmi standard di Constraint Programming e una sua "instanziazione" al caso dei problemi di Scheduling: jOpt

Ho navigato i sorgenti e devo dire che l'implementazione è fatta molto bene, sia dal punto di vista architetturale, sia da quello della pulizia del codice.

L'ho testata su dei problemi di scheduling di risorse e attività generati casualmente ,per un lavoro che sto portando avanti, e devo dire che, anche senza implementazione di particolari euristiche di scelta e local search dedicati la velocità della libreria è molto buona.

L'uso dell'implementazione dello scheduling (denominata JS)è banale anche per chi non è ferrato su questo genere di problemi. Le classi e i metodi esposti sono autoesplicative e l'esempio fornito nei sorgenti e di grande aiuto.

Senzadubbio da tenere d'occhio.

Rilasciato JFreeChart 1.0.5

Rilasciata la nuova versione 1.0.5 di JFreeChart , la popolare libreria Java per la realizzazione di grafici.


Questa nuova versione implementa un nuovo renderer perla creazione di serie temporali nei diagrammi, e varie correzioni di bug.

mercoledì 21 marzo 2007

Hibernate incontra Shard e va orizzontale

Il framework di Hibernate si arricchisce ancora con una nuova utilissima estensione: Hibernate Shard

Detta in breve, Hibernate Shard consente di estendere in modo completamente trasparente il layer di Hibernate ad un contesto con più database.
Diciamolo ancora più terra terra. Supponete di avere i dati sparsi in più database (per motivi legali, di prestazioni, o per riesumazioni di applicazioni datate) e di voler persistere i vostri oggetti per alcuni campi su un database e per altri su un'altro database. Bene, Hibernate Shard fa esattamente questo: senza modificare il vostro modello ad oggetti vi basterà ridefinire in quali database persistere i singoli campi e Shard organizzerà per voi transazioni distribuite nella solita chiara e trasparente veste di Hibernate.

Ovviamente il tutto funziona anche a rovescio, qualora decideste di eseguire delle select distribuite.

E, un po' meno ovviamente, anzi quasi miracolosamente, il tutto funziona anche qualora voleste avere più repliche dello stesso db, e per ragioni di performance voleste lanciare select computazionalmente pesanti, ad esempio con politica round robin sulle singole repliche.

L'estensione è stata realizzata dai soliti buontemponi di Google nel loro arcinoto 20% di tempo libero.