March 2008 Blog Posts

Servizio al cliente

Ho sottoscritto l'abbonamento a NetFlix un annetto fa. Per capirci funziona come un normale video noleggio solo che va tutto per posta. Chiedi un film, te lo mandano (in un giorno ce l'hai a casa), quando hai finito di vederlo lo lasci nella cassetta della posta (con la bandierina alzata) e ritorna indietro. Prosegue lo stesso processo a ciclo continuo. Lunedi' dovevano partire i nuovi DVD che avevo richiesto e per un disguito non sono partiti. Ecco quindi che trovo un'email: ...

posted @ Wednesday, March 26, 2008 9:57 AM | Feedback (1)

TestMethod per metodi privati?

Visual Studio Team Test, ed alcune altre SKU, propone un'interessante feature: genera l'accessor per poter testare anche metodi privati. Il codice generato usa sostanzialmente reflection. Dal mio punto di vista, questa feaure e' sostanzialmente dannosa se usata abitudinariamente. I metodi e le proprieta' da testare sono internal e public, punto! Se testando questi non si arriva mai a testare il metodo privato (vedasi code coverage), vuol dire che quel codice non serve a niente e va eliminato. Meno codice inutile piu' facile manutenzione! Come in tutte le cose di buon senso ci sono dei casi particolari, come ad esempio testare l'interfaccia (non...

posted @ Wednesday, March 19, 2008 1:50 PM | Feedback (5)

Complessita' delle password

Ogni volta che debbo registrare ad un nuovo servizio mi ritrovo ad inventare una nuova password. Gli algoritmi divengono sempre piu' complicati, come ad esempio: Deve essere lunga dra 6 e 12 simboli Deve contenere almeno un numero Deve contenere almeno una maiuscola e minuscola Deve contenere almeno un simbolo di punteggiatura Non deve contenere spazi bianchi In altre parole, e' un'altra palla al piede da ricordarsi. Se poi come in un dominio Windows c'e' la regola che non deve essere uguale alle precedenti 72, inizio a farmele...

posted @ Tuesday, March 18, 2008 1:25 AM | Feedback (7)

protected internal e FamAndAssem

Quest'oggi stavo giocando con l'accessibility accessor 'protected internal' e non mi quadrava una cosa. Veniamo al pezzo di codice incriminato: public class B {     protected internal A a; }   internal class A { } Il compilatore generera' un bel errore del tipo "Inconsistent accessibility: field type 'Demo.A' is less accessible than field 'Demo.B.a'". Il compilatore ha sempre ragione ed infatti 'protected internal' vuol dire 'protected' or 'internal'. Essendo la classe A solo internal, l'aggiunta di 'protected' non va bene in quanto ha una visibilita' piu' estesa. Mi son chiesto ma come accidenti posso avere protected and internal dato che sia l'IL (FamAndAdssem) che C++/CLI (protected private) che System.Reflection.Emit lo permettono? La risposta...

posted @ Monday, March 17, 2008 3:14 PM | Feedback (1)

La relativita'

E' ormai provato scentificamente che noi umani siamo in grado di percepire solamente le differenze, ma non i valori assoluti. Questo si riflette sulle nostre scelte quotidiane. Questa definizione di relativita' non e' probabilmente sufficiente. Dobbiamo aggiungere un altro elemento: la somiglianza nel contesto. Cioe' siamo in grado di gestire la differenza se i due elementi sono comparabili. Facciamo un esempio. Se voglio mangiare un frutto e ho davanti una banana ed una pera (devono piacere entrambe) non so proprio quale scegliere. In questo scenario vado a caso. Se viceversa, aggiungo una pera un pochetto ammaccata, gli esperimenti dimostrano che scegliero' con maggiore...

posted @ Thursday, March 13, 2008 11:31 AM | Feedback (0)

TDD

Alcuni lo chiamano Test Driven Development, altri Test Driven Design, eppure la differenza e' sostanziale. Nel caso di Test Driven Development il codice di test e' inteso come strumento di validazione. Viceversa nel caso di Test Driven Design il codice di test e' inteso come strumento di analisi. Quindi si passa da due concetti radicalmente differenti e con obiettivi diversi, validazione vs analisi. Quindi, nell'ottica del Test Driven Design possiamo pensare al codice di test come le nostre specifiche tecniche, le quali verranno validate dallo stakeholder e visionate, nonche' approvate, durante la prima code review.

posted @ Wednesday, March 12, 2008 11:19 PM | Feedback (13)

L'irrazionalita' e' predicibile?

Ieri sono andato ad una conferenza del professor Dan Ariely del MIT a sentir parlare della predicibilita' dell'irrazionale. E' veramente stupefacente come il genere umano sia predicibile anche quando si sente in totale liberta' decisionale. Cito un paio di esempi interessanti ed emblematici. Scelta del ristorante In una via vi sono due ristoranti vuoti posti l'uno di fronte all'altro. Sono state portate 50 coppie di persone e due a due sono state mandate al ristorante. Nessuno sapeva nulla sui due ristoranti (qualita', prezzo, ecc. ecc.). La prima coppia ha scelto un ristorante a caso. La seconda, vedendo un ristorante vuoto e l'altro con...

posted @ Wednesday, March 5, 2008 2:42 PM | Feedback (2)