Feeds:
Articoli
Commenti

Archive for settembre 2008

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 »

Duecentoquaranta. Questo freddo numero rappresenta sinteticamente la mia vita – il peso di tutto quello che mi porterò via questa settimana, destinazione Italia. La mia vita è un susseguirsi di diete dimagranti: sono abitato ad avere e a perdere – e questo periodo è decisamente il periodo più magro. Per chi non lo sapesse, o per chi magari ci sta pensando su (no, non penso a te, giuro!), sappiate che separarsi costa. Senza considerare quello che dovrò sborsare al divorzio.

Sono esausto. Senza Ivano non avrei potuto finire così velocemente. C’è solo un problema: nella camera c’è una insostenibile puzza di cartone e scotch tale che per sopravvivere dovrò dormire con le finestre aperte.

Domani (ora sono distrutto) dirò la mia sul cambio di licenza di Spring e del perchè ritengo sia una pessima idea.

Buonanotte.

Read Full Post »

È un venerdì sera come tanti altri, qui a Dublino. La gente sembra quasi avere l’obbligo morale di divertirsi – passano la serata a bere e quando escono dagli affollatissimi pub del centro intonano slogan da stadio o tentano di ricomporre con fatica rime di qualche canzone di successo. Bere qui è l’unico modo per rompere le rigide convenzioni sociali e lasciarsi andare un po’ liberamente – per sbloccarsi nell’approccio con una ragazza o più semplicemente per tirarsi su il morale dopo una noiosa settimana di lavoro.

La mia quasi ex casa si trova vicino ad un noto ospedale privato – come potrete immaginare, coloro che si sono divertiti spesso non hanno messo in conto che poi devono tornare a casa. La cosa non è difficile quando si tratta di prendere un taxi; è una bella sfida, spesso culminante in un bell’incidente stradale, quando ci si prova da soli. E ricordo diversi venerdì notte a contare, attraverso le sirene delle ambulanze, quanti di questi incoscienti ci provano senza successo.

Domani mattina è giorno di pacchi. Sì, è ora di estrarre gli abiti dagli armadi, imballare la console ed il televisore, il piumino ed i cuscini, la stampante, e quant’altro scoprirò di avere comprato e probabilmente mai utilizzato in questi due anni. Sarà una giornata di ricordi – alcuni anche precedenti a questa esperienza – e conoscendo quanto sono malinconico, prevedo già umore nero.

Fortunatamente, l’impacchettare ed il chiudere vuol dire che sto per tornare a Tbilisi! Non potete immaginare quale felicità: riabbracciare Maria dopo quasi due mesi di separazione, i suoi genitori, rivedere gente felice di incontrarti e con la quale si riesce a parlare di tutto, dalla ricetta di cucina alla filosofia. Ma soprattutto, toccare per la prima volta il pancino! 🙂

È la prima volta che torno in Georgia dal conflitto. Nonostante Tbilisi non sia stata impattata dagli scontri, sono convinto che troverò una città diversa, più nervosa e più sospettosa. I caucasici sono gente molto cordiale e rilassata ma allo stesso tempo particolarmente polemica. Polemizzano su tutto, senza poi trovare mai una soluzione concreta – da questo punto di vista mi ricordano tanto gli italiani.

Ora si sentono privati – a torto o a ragione non spetta a me dirlo – di due territori che si sono conquistati con il sangue di coloro che ha perso la vita per l’indipendenza georgiana, prima nel 1989 e poi nel 1991.
In TV non parlano d’altro. Il telegiornale è un carosello di politici, ognuno con le sue affermazioni e le sue polemiche contro la Russia. In Georgia si può morire di chiacchiere, e tutte queste polemiche non fanno che alimentare le chiacchiere, che a loro volta alimentano nuove polemiche… beh, mi avete capito.
C’è ora da vedere se al prezzo che hanno pagato corrisponderà la contropartita: l’ingresso della Georgia nella NATO. È da almeno un anno che le emittenti georgiane trasmettono una campagna pubblicitaria per convincere i cittadini che la NATO è la loro “assicurazione sulla vita”. Mai tale motivazione fu più azzeccata.

Beh, allora forse è il caso di raccogliere le energie per domani. Nell’ordine:

  • Acquistare scatole da imballo da Argos
  • Acquistare scotch da pacchi robusto
  • Cooptare Ivano come schiavo
  • Impacchettare il possibile

Ah, per curiosità – sapete quanto vuole una società di traslochi per spostare venti pacchi da Dublino a Roma? 1700 Euro + IVA 21% ed assicurazione. Non credo che la roba che ho qui valga così tanto. Vuoi vedere che butto tutto via?

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 »

La giornata comincia bene: mi sveglio tardi, mi incontro con Ivano e ce ne andiamo a mangiare un po’ di sushi allo Yamamori sui quays. Il locale è davvero carino – da fuori sembra minuscolo, dentro è davvero spazioso.

Sazio ed appagato torno a casa a dare una bella pulita di fondo – stasera vengono due ragazzi a vedere l’appartamento, magari gli interessa. Sono quelle forzature che mi aiutano a liberarmi della mia atavica pigrizia. Risultato: casa è un gioiellino – meriterebbe una foto, Maria sarebbe felice di me 🙂

Se non fosse per la solita cornice meteorologica, una giornata da ricordare. Ed invece no. Mi siedo, mi bevo un bicchiere di Fanta, dò un’occhiata ai titoli dei giornali. In mezzo alle troppetante dicerie su Alitalia leggo due righe riguardo al beneamato papa Benedetto XIV:Monito del Papa alla Chiesa francese “Non benedite le unioni illegittime”.

“Ma va là” – penso io – “ce l’avrà con gli omosessuali, ecc.”. Incuriosito, leggo l’articolo. Niente comunione a chi si risposa. E i matrimoni di chi si risposa sono da considerarsi “illegittimi”.

Illegittimo: “che non ha le condizioni imposte dalla legge; ingiusto; irragionevole”.

Ho bisogno di Coca Cola. Me la bevo e penso: se io mi fidanzo con una donna per 7 anni e mi sposo per altri quattro e viviamo come se non fossimo sposati, quello è ingiusto; se mia moglie non vuole avere figli perchè non vuole fare felici i miei genitori, questo è irragionevole. Se trovo una donna con cui ho un rapporto maturo e serio e che non mi fa mancare niente sul lato affettivo e sessuale, questo è giusto e ragionevole.

Se questa donna mi da anche un figlio, questo rapporto non è solo giusto e ragionevole: è pure SACRO. Non c’è nessun sacrilegio che tenga. Ho il timore che queste regole servano solo a tenere gli indicatori statistici (leggi: numero di divorzi) sotto controllo. In altre parole, una questione di forma più che di sostanza.

Se vi interessasse saperlo: credo nella famiglia e nel matrimonio. E ho tutta l’intenzione di risposarmi. Non ho invece nessuna intenzione di martirizzarmi per tutta la vita accanto ad una persona che non mi ama. Quando si è felici si è molto più disposti ad aiutare il prossimo. O sono impazzito?

Read Full Post »

Se vi piace mangiare, i peperoni ripieni al kebab sono una delizia che dovete provare. Ci vuole al massimo mezz’ora per prepararli ed il risultato è assicurato.

L’unica difficoltà è quella di trovare le spezie: se nei paesi anglosassoni le spezie sono facilmente reperibili in un qualsiasi negozio etnico, in Italia sembra un po’ più difficile.

Mezzo chilo di carne fa 4 peperoni delle dimensioni in foto (non particolarmente grandi, come potete osservare).

Ingredienti del ripieno:

  • Mezzo chilo di carne di manzo;
  • 1 cipolla bianca, grande;
  • 1/2 cucchiaino di cumino in polvere;
  • 1 cucchiaino di coriandolo in polvere;
  • 1 o 2 cucchiai di aceto di vino;
  • 1/2 bicchiere d’acqua;
  • olio q.b.;
  • sale q.b.;
  • pepe q.b.

Tagliate la testa ai peperoni, svuotateli e privateli dei semi; cospargete i peperoni di sale ed olio ed adagiateli in una teglia. Infornate e tirateli fuori appena is sono ammorbiditi.

Nel mentre, unite l’aceto alla carne macinata e massaggiatela. L’aceto la renderà più morbida e toglierà un po’ della puzza di flesh tipica del macinato.

Nel mentre la fate riposare, usate un robot da cucina, una mezzaluna, le vostre ormai vecchie lezioni di karate per sminuzzare finemente la cipolla. Una volta fatto, unite la cipolla, il cumino, il coriandolo, il sale (secondo gusto), il pepe (anche questo secondo gusto) e l’acqua e mischiate energicamente fino a fare una composto compatto; non fate perdere l’acqua altrimenti vi diventa secco in forno.

Prendete i peperoni ora morbidi, riempiteli (fate attenzione alla temperatura) con il composto e re-infornate per altri 20 minuti.

Enjoy!

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 »