Posts
89
Comments
138
Trackbacks
6
mercoledì 27 febbraio 2008
[NHibernate] - DateTime e update non necessari

Seguendo il post di Gian Maria oggi mi sono deciso ad attivare il log su NHibernate per verificare quali query fossero lanciate sul database (a proposito quando attivate il log ricordatevi di inserire l'inizializzazione di log4net altrimenti non viene loggato niente).

Tutto funziona a meraviglia, ma con mio stupore ho notato che nel dump sono presenti una serie di update a fronte di una semplice lettura di dati (da un solo tipo di entità). Controllo il mio file di mapping ma è tutto molto semplice: qualche proprietà e 4-5 relazioni many-to-one. Vado in debug e in effetti verifico che la sessione è dirty.

Non sapendo che altro verificare, ho iniziato a togliere dal file di mapping proprietà su proprietà fino a scoprire quelle colpevoli: si tratta di due campi DateTime che nel database sono però nullabili. La spiegazione dettagliata del perchè l'entità venga considerata dirty la trovate in questo post di Ayende.

Come consigliato ho risolto il problema modificando le due proprietà affinchè fossero nullable: 

Public Overridable Property Data() As Nullable(Of DateTime) Get Return m_Data End Get Set(ByVal value As Nullable(Of DateTime)) m_Data = value End Set End Property
Technorati Tags: ,


posted @ mercoledì 27 febbraio 2008 14.27 | Feedback (2)
[jQuery] - Bug sulle funzioni di animazione

Utilizzando l'ultima versione di jQuery (la 1.2.3) e provando i miei soliti script js mi è saltato fuori il seguente bug:

jQuery.easing[this.options.easing || (jQuery.easing.swing ? "swing" : "linear")] is not a function

Come spiegato in questo ticket si tratta di un bug di associato ad alcune funzioni di animazione che viene fuori nel caso in cui si utilizzino delle funzioni di callback. Nel mio caso sto utilizzando la fadeIn e la fadeOut.
Andando a sbirciare nel codice di jQuery si nota questo:

fadeOut: function(speed, callback){ return this.animate({opacity: "hide"}, speed, callback); }, fadeTo: function(speed,to,callback){ return this.animate({opacity: to}, speed, callback); }, animate: function( prop, speed, easing, callback ) { .... ....

Come si può vedere le funzioni fateOut e fadeTo (ma anche altre) richiamano la animate passando tre parametri su quattro. L'easing non viene mai passato. Questo non causa errori fino a che non viene passato il callback, che infatti viene preso come terzo parametro al posto dell'easing.

In attesa della correzione ufficiale, possiamo correggere il problema in vari modi: intervenendo direttamente sullo script di jQuery (a mio parere sconsigliato), oppure sosituendo le chiamate alle funzioni di animazione con la chiamata diretta alla animate, oppure ridefinendo le funzioni di animazione utilizzate in modo da correggere il bug.

Technorati Tags:


posted @ mercoledì 27 febbraio 2008 10.03 | Feedback (0)
News
Se volete sapere con chi avete a che fare eccomi qui in uno "scatto" lavorativo.
La mia foto
Da grande fan di Homer & company non potevo esimermi nel simpsonizzarmi. Eccomi insieme alla mia dolce metà:
Simpsonizzato

Logo MCAD
Logo MCTS

Visite dal 16/03/2007:

Il mio stato su Messanger: