mercoledì 22 dicembre 2010

gwt 2.1 e le Nested Activities

Ok, mi sto baloccando con le nuove GWT 2.1 e il nuovo modello MVP
Mi sembra un bel modello, anche se molto complesso.
Mi sono però subito imbattuto in un problema: come gestire pagine composte? E' veramente problematico e pressoché impossibile gestire tutto insieme, specialmente quando si lavora con layout composti.

Un'aiuto mi è venuto da questo articolo, che ben spiega come modularizzare una applicazione fatta a Layout

mercoledì 17 novembre 2010

Swiftpoint vince il BIG

Swiftpoint ha vinto il premio "Best of What's New 2010" del magazine Popular Science! Il prodotto è segnalato come una delle cento migliori creazioni dell'anno, insieme a concorrenti quali Intel, AMD, Toshiba, Adobe.
Lo dicevo io che è un bel giocattolino!

domenica 10 ottobre 2010

Hibernate e la cache di secondo livello

Hibernate ha la possibilità di configurare una cluster cache. Questo sia per le singole classi che per le collection di dati (class-by-class basis or collection-by-collection basis). E' anche possibile configurare una cache clutered. E' evidente che questo meccanismo da alcuni vantaggi, ma anche alcuni svantaggi.


Vantaggi

  • Il database non sarà gravato da continue richieste, perchè molte di queste verranno già risolte a livello di cache.
  • Il workload per rappresentare un dato tabulare come oggetto si riduce.
  • La cache, che di solito è in memoria, è molto più veloce nel reperire i dati che non l'accesso al database.
  • La cache può essere clusterizzata, aumentando la scalabilità ed affidabilità del sistema.

Svantaggi
  • I dati, se possono essere variati anche da altre applicazioni, potrebbero non essere sempre aggiornati: è quindi necessario configurare adeguate policies di refresh dei dati.
Per questo tipo si caching, dette cache di secondo livello, Hibernate si affida a librerie esterne, che possono essere pluggate.
Per fare questo è sufficiente fare 2 operazioni.
  1. Nella configurazione di hibernate (hibernate.hbm.xml) basta settare la proprietà hibernate.cache.provider_class
  2. Per ogni classe di cui si vuole fare caching si deve aggiungere il tag al file di mapping (o l'equivalente annotation sulla classe, ma io preferisco lavorare con i files di mapping) oppure, a livello di configurazione hibernate (hibernate.hbm.xml) specificare gli elementi e
Hibernate supporta alcuni cache providers, da una semplice Hashtable, creata per ragioni di test (e assolutamente da NON usare in produzione) a EHCache che supporta la replicazione e il clustering, a a JBossCache 2 che supporta anche la Query Cache.
Da mettere in evidenza che Hibernate, fino alla versione 3.0, veniva impacchettato con EHCache di default, e su questa Cache enterò più in dettaglio in futuro.

martedì 31 agosto 2010

Skype Connect

Skype ha lanciato sul mercato Skype Connect, un nuovo sistema per integrare Skype  con i PBX aziendali.

sabato 28 agosto 2010

Google non parteciperà al prossimo JavaOne

In seguito alla causa legale intentata da Oracle a Google  sul linguaggio Java, gli sviluppatori di Google hanno reso noto che non parteciperanno alla convention JavaOne di quest'anno.

Qui la notizia

A Case for Feature Branches

http://agile.dzone.com/articles/case-feature-branches?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+javalobby%2Ffrontpage+%28Javalobby+%2F+Java+Zone%29

giovedì 29 luglio 2010

domenica 11 luglio 2010

Delphi e Pdf

Certo che creare dei bei pdf è sempre una lotta!
Se poi su Java c'è iText cosa si può usare per esempio in Java o in C++?
A parte soluzioni variamente propietarie si può ad esempio usare la libreria Haru, una bella libreria openSource che permette di fare dei bei report.
Fra l'altro la distribuzione ha già a bordo dei buoni esempi in delphi.
Per lavorarci meglio ho fatto un wrapper delle funzioni in una serie di oggetti, i classici pdfDocument, pdfPage e poco più e devo dire che tutto funziona molto molto bene.
Solo un'accortezza, di cui voglio approfondire: occhio alle dipendenze!

lunedì 21 giugno 2010

Delphi incontra .NET

E dopo tanto peregrinare, si ritorna all'origine.
Mi sono allontanato abbastanza in questi anni dal Delphi, quasi snobbandolo come linguaggio minore, anche se in fondo in fondo mi ha sempre dato da mangiare.
E alla fine l'ho rincontrato, e declinato nella maniera più innovativa possibile.
Come sapete (o forse no ma si dice sempre così) il progetto Delphi.NET è definitivamente morto e sepolto, ma è stato creato un altro compilatore per piattaforma .NET, che si chiama Delphi Prism, da una società, la RemObjects. Il progetto Delphi Prism, poi acquistato da Embarcadero (che ora detiene i diritti del Delphi) non è semplicemente il porting su .NET di delphi, ma un linguaggio che, partendo dal Pascal del Delphi, lo ha esteso alle specifiche della piattaforma .NET (Generics, namespace e quant'altro).
La cosa veramente interessante di tutto ciò è, anche se l'IDE (o meglio il plugin per Visual Studio) è a pagamento, il compilatore a linea di comando è gratuito e scaricabile da qui. Quindi, anche senza tanti aiuti grafici, si può comunque pensare di compilare i progetti Delphi per .NET, apportando solo alcune modifiche.
E uno dirà: ma non si fa prima a fare tutto in c#? Supponete però di avere, come ho io, una bella base di codice esistente scritto in Delphi, e che magari la si vuol migrare a .NET. Almeno per la parte di business logic questo potrebbe essere il modo di fare il porting cambiando veramente pochissimo, ho fatto la prova.
In più, meraviglia delle meraviglie, il framework target non è solo quello di Microsoft, ma anche Mono, tanto vituperato ma per me tanto utile in questo momento per il cross platform.

venerdì 11 giugno 2010

Text Editor: Geany

Nella continua ricerca di un editor che mi ispiri veramente mi sono imbattuto in Geany
Mi è piaciuto subito al primo impatto: ben organizzato, con l'editor che permette il CodeFolding, facilmente pluggabile, con già previste le possibilità di compilazione ed esecuzione dei programmi. Fra i quali, a parte il python, c'è anche il freePascal, e devo dire che è una goduria fare programmetti in Pascal senza tanti grossi IDE (non che Lazarus sia pesante, ma è espressamente votato al free pascal.)

martedì 1 giugno 2010

lunedì 24 maggio 2010

Mule rilascia la milestone 3 di Mule 3

Mule ha rilasciato la milestone 3 della nuova release Mule.

Appena posso vedo di convertire un progettino che già è fatto con Mule 2 e vedo come si comporta.

martedì 18 maggio 2010

Joomla! 1.6 Beta

Joomla 1.6 Beta è ora disponibile.

Una delle cose + interessanti è Unlimited Depth Organizational Model cioè la possibilità di creare categorie in un albero.

mercoledì 12 maggio 2010

Windows 7 sp1 in anticipo?

Rumors dicono che Win7 sp1 potrebbe arrivare in anticipo sui tempi, alla fine dell'anno e non più a metà del prossimo.
Questo di per se dice poco, se non che con l'sp1 verrà tolta anche la possibilità di fare downgrade a XP sp3, o meglio, verrà lasciata solo a chi acquisterà la versione Business.

domenica 2 maggio 2010

Ubuntu 10.04. Primo test sulla lince

Ebbene si, non ce l'ho fatta ad aspettare oltre, ed ho fatto l'aggiornamento ad Ubuntu 10.04
Ho un HP Pavillion dv6000 di 4 anni fa (o forse anche più...)
Ci ho messo 1 ore e mezzo a fare il download di 2.111 pacchetti che separavano la mia 8.04 dalla lince e poi un'altra ora e mezzo abbondante ad aspettare che il sistema facesse l'update.
Devo dire che sono rimasto contento dalla praticamente assenza di errori in fase di installazione. Ho avuto solo un problema sull'installazione degli iso-codes, perchè sembra che il pacchetto non fosse ben formato: comunque lo ho ritrovato nel gestore aggiornamenti.
Ho anche apprezzato il fatto che il sistema, sui files di configurazione che trovava modificati da me (ad esempio l'httpd.conf e figli di apache) mi ha chiesto se volevo sovrascriverli con la nuova versione o mantenere l'esistente.
Ad un primo sommario test l'unica cosa che non funziona immediatamente è la webcam integrata, ma questa mi aveva già fatto impazzire con la 8.04, è la maledetta ricoh webcam 05ca:1870 che per farla funzionare avevo trovato il driver r5u870.
La velocità di boot è nettamente migliorata, devo vedere ancora bene come si comporta eclipse che sulla 8.04 soffriva un po'.
Un'ultima notazione, ma da poco, è che le icone di minimizza, massimizza e chiudi la finestra sono a sinistra e non più a destra, mi ci vorrà qualche giorno ad abituarmi.

venerdì 30 aprile 2010

Bean 2 xml e viceversa

Ho scoperto (lo so arrivo sempre dopo) xStream

L'ho trovato già integrato dentro Mule, si vede che ne fanno abbondantemente uso.
Mi è piaciuto, semplice, intuitivo, e molto utile per trasformare i messaggi sulle code JMS.

martedì 27 aprile 2010

Microsoft lavora con Joomla

Microsoft ha firmato il Joomla Contributor Agreement e aiuterà Joomla nell'integrazione con IIS e la piattaforma Microsoft.

Qua la notizia

Dovrò cambiare CMS?

lunedì 19 aprile 2010

Velocizzare GWT

Qui una seria di consigli per velocizzare grandi e complesse applicazioni fatte con GWT.

lunedì 12 aprile 2010

Visual Studio 2010

Microsoft ha ufficialmente rilasciato Visual Studio 2010, assieme al nuovo .NET Framework 4.0
E io che non ho ancora digerito il 3!

giovedì 8 aprile 2010

Subversion hosting

Mi sono sempre chiesto se ci sono servizi di hosting per subversion, sia a pagamento che free.
Ho trovato un sito per comparare i servizi di hosting per SVN

http://www.svnhostingcomparison.com/

A me piacerebbe provare Google Hosting, ma è solo per progetti open.
Mi sembra quasi di sparare alle zanzare con un cannone per metterci le mie 10 classi del progetto biblio, ma forse quasi quasi lo faccio...

martedì 2 marzo 2010

Joomla 1.5 ed Alfresco 3.2

Alfresco aveva (notare il verbo al passato) pubblicato un componente per Joomla capace di ricercare e visualizzare i documenti contenuti in Alfresco da Joomla stesso.
Il componente lo trovate qui.
Ora, questo componente è un tantino datato, e si basa su una versione 3.0 di Alfresco.
Recentemente ho avuto la necessità di integrare Alfresco in Joomla, e mi sono trovato quindi a dover combattere con l'obsolescenza del componente.
Facendo un po' di ricerche sono capitato su questo forum, dove si da una soluzione funzionante per Alfresco 3.2
Ho provato a fare quanto consigliato, risolvendo quasi tutti i miei problemi tranne che il vero e proprio preview del documento.
Per riuscire a far funzionare (quasi) tutto ho dovuto mettere mano anche ai javascript di Alfresco stesso, in particolare al web-preview.js, che ho preferito quindi includere nel componente Joomla.
Siccome sono piuttosto contento del risultato ottenuto, e anche perchè mi è stato concesso di farlo, posto qui il componente.
Ci sono ancora alcuni problemi aperti, tipo riuscire a leggere la proprietà size dall'xml che si riceve da Alfresco (come si gestiscono i namespace col SimpleXmlElement ?) e capire se è possibile nella prima request al documento fatta dal componente Alfresco.WebPreview, passare username e password per l'autenticazione.
Però diciamo che almeno così funziona, e non è poco.
Grazie anche a Leonardo per l'aiuto che mi ha prestato, da solo mi sarei scoraggiato davvero.

Aggiornamento 16/11/2011: ho cercato di recuperare tutto il componente, perché il vecchio zip mancava di un pezzo. Qui il nuovo zip, spero completo, non ho verificato per mancanza di tempo.

domenica 21 febbraio 2010

Spring 3 e lo Unit Testing

Ho fatto qualche piccolo passo nello Unit Testing di Spring3
L'ho fatto con JUnit4, in modo da poter sfruttare le annotations.
Uno potrebbe dire: JUnit ha i "classici" eventi di SetUp e TearDown, si usano quelli per istanziare Spring e poi si fanno i test normalmente.
Non è una cattiva idea, peccato che i due eventi vengono lanciati prima e dopo ogni test, quindi per fare 5 test si istanzia e distrugge 5 volte il framework Spring.
E allora come si fa?
Si usa l'annotation @RunWith di JUnit4. Questa annotation permette di invocare, invece del runner standard, il runner specificato. Spring4, nel pacchetto di test, ha il runner SpringJUnit4ClassRunner, quindi l'annotation diventa

@RunWith(SpringJUnit4ClassRunner.class)

OK, e ora come si fa a caricare la configurazione?
Semplice, sempre con l'annotation, questa volta specifica del package Spring Test, @ContextConfiguration
Questa annotation permette di specificare, sia con path relativo che assoluto, quali files usare per i test.
A questo punto basta scrivere i nostri test e, prima che vengano lanciati, verrà lanciato il framework spring con la configurazione specificata.

domenica 14 febbraio 2010

jBPM4

Era un po' che non davo un'occhiata alla jBPM di RedHat.
Mi sono accorto, con gioia, che è uscita la versione 4 della versione Community.
Cosa c'è di nuovo? A me ha colpito una cosa fondamentalmente: la possibilità di interagire tramite API con il sistema.
Finalmente si ha la possibilità, da qualsiasi applicazione, di interrogare il sistema. Addirittura sono state create Api apposite per le Query. Queste API coprono la maggior parte delle necessità: per necessità più specifiche "Developers who need to write company-specific queries can of course still rely on Hibernate." alla maniera degli antichi!
Direi che questa release è un gran bel passo avanti! Son sempre più convinto che mi dovrei gingillare più spesso con quete tecnologie, aprono spazi infiniti...

lunedì 25 gennaio 2010

MSOffice o OpenOffice?

Qui il risultato di un sondaggio sull'usabilità fatto tra MSOffice e OpenOffice.
OpenOffice ne esce con le ossa rotte, purtroppo.
Io non me la sento di sposare questa tesi. Sarà che i miei documenti hanno l'impaginazione di quelli di un bimbo di 5 anni, ma a me Writer funziona bene e Calc pure.
E' vero, Impress, l'equivalente di PowerPoint, lascia un po' a desiderare, ma non me faccio mai grande uso quindi non sono un buon tester.

domenica 10 gennaio 2010

PostGreSQL e Windows 64 bit

Ebbene si,
in queste feste sono stati venduti un bel po' di Windows 7 a 64 bit. Lo sto toccando con mano in questi giorni.
Il problema è che ancora non ci sono molti software a 64 bit, incluso PostgreSQL.
In questo post Magnus Hagander ci informa che è riuscito ad avere una build di PostgreSQL a 64 bit, ma che, come già aveva detto, il vero problema è che ci sono librerie usate da PostGreSQL che non sono a 64 bit, o che non lo sono ancora al 100%.
Chi può provi ad installare PostgreSQL e faccia sapere i suoi risultati!

venerdì 8 gennaio 2010

Statistiche di accesso

Di sicuro ve ne siete accorti,
ma io uso Google Analytics per vedere in quanti mi vedono su questo blog.
Guardando nel loro blog ho scoperto che hanno anche messo in vendita Analytics In A Box, che permette di collezionare i dati di traffico.
Mi piacerebbe proprio provarlo....