Feeds:
Articoli
Commenti

Archive for the ‘information tristology’ Category

Perhaps I am taking the subject too personally, but I feel disturbed by the new SpringSource’s update policy.

For those who don’t know, how does it work? I will try to explain – SpringSource will develop and still make the source code available; they will also incorporate and render publicly available all the fixes. Where’s the catch then? The baselines. SpringSource will tag stable baselines for the first three months from the release of a new major version (e.g. 2.0, 2.5, etc.); after that, the next tags will be available only to paying customers. The next available tag for open source users will be the next major release.

I am not debating the objective of Spring Source to make money out from their flagship product. I am instead debating a number of other issues that arise from this:

  • Changing the licensing terms on the run is, let me say, unfair. Either a product is open source, either it is not. If it is, source code and tags must still be available. There are a lot of other ways of making money with enterprises: extra features available to paying customers only, priority support, customization, and possibly many others. Restricting a license is like a stab in the back – they let the cows pasturing in their field and then they lock them within the fence.
  • This episode stacks up to similar cases and is raising understandable doubts over open source adoption by small businesses. If enterprises have deep enough pockets to cater for an additional license, small companies with tight budgets may suffer from an unexpected cost for a framework that, one week before, was totally available for free.
  • Other products / frameworks – what I said in the previous point might also create a valuable precedent for all those products currently released as open source but actually developed by real businesses: Alfresco, Liferay, GWT, Guice, etc. – if Spring Source’s model will succeed, we shall expect more of this.
  • Raising an issue and problem determination will become a nightmare: with what “baseline” of Spring did the user encounter the problem? Were all the SVN commits applied?
  • Spring ecosystem: there are other products that are heavily relying up on Spring, CXF and Liferay just to name a couple. How will this new policy affect their development? How shall they keep in sync with Spring tags? Shall they package their own release? Or what else?

I am fairly concerned about what happened. Besides any consideration about Spring (I used it only for IOC and transaction management), the consequences of this highly debatable move can be disastrous. I can only manifest my disapproval for an unfair choice that can be detrimental for the whole open source community.

I will stare at the window and see the development. In the meantime, I will have a look to Tapestry 5’s and Guice IOC containers. I am sure they are providing most of the features for which Spring has been so much followed and praised.

Read Full Post »

Mi dispiace di non avervi potuto rendere partecipi della meravigliosa bistecca che mi sono cucinato ieri. Una bistecca di puro manzo irlandese, lasciata a frollare per ventuno giorni, sottovuoto. Ho aperto l’involucro con fare cerimonioso, gli ho dato una massaggiata con dell’olio di olive, aggiunto del sale grosso e del pepe bianco ed infine puntellata con del rosmarino fresco. Dopo averla fatta riposare qualche minuto, l’ho collocata sulla piastra ardente.
Il sale grosso si è sciolto ed è penetrato nella carne, mentre l’olio ha crostificato i due lati della bistecca.

Risultato: non ci sono parole che possano descrivere il turbinio di emozioni che giungevano dal palato. Marbled and mooing! Memorabile! Ho accostato uno Shiraz di Wolf Blass – un perfetto amico di una bella carne rossa.

Sono successe molte cose in questi giorni.

Il mio framework di mappatura SQL-SDO funziona che è una meraviglia. L’integrazione del logging con WebSphere mi permette di cambiare la logorroicità (credo che verbosità sia un neologismo, ora non ho voglia di controllare) in tempo reale, senza dovere riavviare l’applicazione – o peggio – l’application server. Le prestazioni sembrano davvero essere all’altezza della situazione, se si fa eccezione per la fase di creazione del DataObject tramite BOFactory. Se non capite cosa sto dicendo, vuol dire che non vi interessa.

L’attività di stress testing delle nostre stored procedures su z/OS hanno invece segnato una battuta di arresto: o abbiamo una LPAR in una macchina decisamente sottodimensinata o la configurazione del DB è lungi dall’essere ottimale. Sto ottenendo solo 120 transazioni al secondo, usando JMeter sull’USS della nostra partizione (che non è quindi in-process, ma quantomeno non ci sono giri di rete). Lo stesso caso di test, eseguito su una mortale macchina wintel, segna valori oscillanti tra le 600 e le 1100 tpm. Sconcertato.

Ho trovato dei nuovi inquilini per la casa! Ilaria ed Alessandro. Sono davvero due ragazzi simpatici, sono felice di lasciare casa a loro. In questo piccolo bilocale dublinese, 1250 euro al mese in centro, c’è un’aura positiva. È dove abbiamo passato gli ultimi giorni che abbiamo passato insieme, io e Maria, prima di scoprire che aspettasse un bimbo. Spero che porti fortuna anche a loro anche se, avendo solo 27 anni, forse è un po’ presto per loro. Gli auguro ogni bene.

Se venite ad abitare a Dublino e per caso prendete una casa in affitto, fate attenzione – ci sono due tipi di contratto: part 4 e fixed term. Il part 4 è qualcosa di analogo all’italiano 4+4 mentre il fixed-term è più simile al nostro uso foresteria. Le differenze però non sono banali:

  • Nel contratto part 4, il periodo di preavviso per la disdetta è direttamente proprozionale al tempo che avete vissuto nella casa; il minimo è 4 settimane e sale con il tempo.
  • La disdetta va sempre fatta per iscritto – se non lo fate ed avete una disputa, la tenancy board può ritenere valida la vostra rescissione contrattuale perchè non ha rispettato i termini; no, una e-mail non basta.
  • Veniamo ora al contratto più pericoloso e più diffuso – il fixed term. Sebbene le caratteristiche contrattuali lo facciano sembrare appetibile (un anno rinnovabile, solo 4 settimane di preavviso), nasconde un’insidia: l’onus (l’onere) del pagamento. Il contratto fixed term infatti, essendo a durata fissa, obbliga il tenant a pagare l’intera somma indipendentemente che la proprietà venga usata o meno. L’unica eccezione prevista dal Tenancy Act 2004 (al quale vi rimando per maggiori informazioni) è che – qualora il contratto preveda il subaffitto – il tenant ne trovi un altro che lo sostituisca. Non mi è chiaro quali siano le responsabilità del tenant precedente in caso di un breach del contratto (mancato pagamento, danneggiamento della proprietà).
    Succede poi, nella prassi comune, che il tenant che non riesca a trovare un sostituto perda la caparra e sia liberato da ogni altro gravame. Ma attenti – la legge non recita così.

Confesso che inizio a provare una certa malinconia. Mancano 12 giorni alla partenza e tornare in Italia per un anno sarà molto difficile. Non sarà il paradiso che molti turisti italiani credono che sia, ma in Irlanda non si sta malissimo. Mi mancano solo le attività culturali, che non sembrano particolarmente gradite dalla popolazione locale. Quando avremo sistemato tutto con Maria ci potremo forse permettere degli short breaks a Londra e Parigi; a quel punto un posto varrà l’altro.

Non ho tempo per la malinconia – devo ancora:

  • Vendere l’auto;
  • Impacchettare tutto e spedire;
  • Fare le volture di casa;
  • Andare a prendere Maria che ora è a casa dei suoi.

L’immagine è stata presa da http://stephen60.wordpress.com

Read Full Post »

Confesso che per molto tempo ho nutrito forti dubbi riguardo all’API java.util.logging del JDK. Comparata a quella di log4j o a quella di slf4j mi sembrava particolarmente rigida. In particolare,  il fatto di dovere passare la posizione del file di configurazione del log via una proprietà di ambiente o tramite switch del JRE (sic!) mi sembrava davvero troppo.

Dopo un po’ di lettura dei javadoc, scopro che è invece possibile leggere il file di configurazione da un InputStream! Sebbene molti penseranno che questo sia un tipico caso di RTFM… invece non è così. Parlando con diversi sviluppatori in giro per il mondo, sono stato ancora più sorpreso di quanto questa API sia sconosciuta ai più.

Ad ogni modo, se vi interessa il codice, eccolo qui:

InputStream logcfg = Thread.currentThread().getContextClassLoader().getResourceAsStream(“logging-test.properties”);
LogManager.getLogManager().readConfiguration(logcfg);
logcfg.close();

Facile facile.

Read Full Post »