ottobre 2009 Entries

Sviluppo Web e qualità, ma in generare sviluppo e qualità

Avete mai provato a tenere abilitato lo script debugger di Internet Explorer? e poi a navigare un po’ e un po’ la…? che esperienza teribbile :-), tre quarti delle pagine contengone quintalate di errori JavaScript: producendo una experience che definire pessima è un complimento :-) L’unica fortuna, per chi produce ste cose, è che quelle opzioni devono essere esplicitamente configurate e quindi in pressochè tutti i browser le cose vanno bene, ma la domanda a questo punto è: ma il dev che ha scritto quello roba l’ha...

posted @ sabato 31 ottobre 2009 7.29 | Feedback (4)

[OT] Certe cose mi fanno pensare… molto…

Quoto (e condivido): …snobbata dai più: ma spuntano le foto ed ecco che i grandi quotidiani si avventano allarmati su una notizia che già c’era: «Morto dopo l’arresto, diffuse le foto shock» ha titolato il Corriere, purché sia chiaro che la notizia ritenuta più interessante non era «Morto dopo l’arresto», ma «diffuse le foto shock», dunque le foto. E il video napoletano stile Gomorra? Avete notato che qualcuno aveva le maniche corte? L’esecuzione, già nota, è dell’11 maggio scorso, e tuttavia Repubblica: «Adesso la città ci aiuti». E perché solo «adesso»? Ah già,...

posted @ sabato 31 ottobre 2009 7.18 | Feedback (3)

NHibernate: IPreInsertEventListener

Poco tempo fa ho parlato di strategie di generazione del document identifier con NHibernate, quello che vogliamo ottenere è rendere trasparente all’utilizzatore il fatto che un “id”, ad esempio il numero fattura, debba essere generato e dipenda da fattori esterni all’entità. In soldoni vogliamo limitarci ad una cosa del genere: using( var dc = this.dataContextFactory.Create() ) { using( var tx = dc.BegingTransaction( IsolationLevel.Serializable ) ) { dc.Insert( myEntity ); tx.Commit(); } } nel post di...

posted @ venerdì 30 ottobre 2009 10.00 | Feedback (0)

NHibernate, event listener: che cosa scomoda…

Questa è abbastanza “scomoda” se usate gli event listener di NHibernate da codice dovete stare molto attenti a non rimuovere quelli di default: var fc = container.GetService<FluentConfiguration>(); fc.ExposeConfiguration( cfg => { cfg.EventListeners.PreInsertEventListeners = new[] { new MySaveEventListener() }; } ); Quello che succede infatti, e pure giustamente, è che se nella lista degli eventi c’è già qualcuno lo state semplicemente sovrascrivendo e questo è poco bello :-) Una soluzione semplice ed elegante è questo Extension Method che vi permette di scrivere in maniera molto naturale questo: var fc = container.GetService<FluentConfiguration>(); fc.ExposeConfiguration( cfg => { cfg.AddListener( e => e.PreInsertEventListeners, new MySaveEventListener() ); }); ne riparliamo prossimamente .m

posted @ giovedì 29 ottobre 2009 12.00 | Feedback (0)

ProjectName, Namespace e AssemblyName: ma quanta robaccia… :-)

Questo è un’altro dei passaggi cruciali, abbastanza manutenibile anche a posteriori a patto che non siate sotto source control che rende le cose un po’ più ostiche. Per prima cosa ricordiamoci che i sistemi di source control non digeriscono molto bene il rename di un progetto, e TFS non fa difetto ;-); per essere precisi il problema è che se siete (e io lo sono alla noia) pignoli quando rinominate un progetto volete anche rinominare la folder.. e questo spacca la solution… e che ----- :-), quindi si può fare ma è abbastanza tedioso, meglio cercare...

posted @ mercoledì 28 ottobre 2009 22.00 | Feedback (4)

Perchè quei nomignoli così scomodi?

Probabilmente, ma anche no…, qualcuno si sarà chiesto: ma perchè quei nomi? perchè lib e non libraries, perchè doc e non documents? per il semplicissimo motivo che è molto facile raggiungere il fastidioso limite dei 256 caratteri che un path su disco ha… che è decisamente obsolescente ma dietro il quale c’è una lunga storia che esula da questo post. Perchè? perchè il simpatico Visual Studio ha il vizio di creare i progetti inserendoli in una subfolder con lo stesso nome del progetto e siccome trovo che sia un gran comodo mi va bene così :-)…...

posted @ martedì 27 ottobre 2009 17.30 | Feedback (3)

Trenitalia: inetti (punto)

Non credo possano esistere altri temini per quelli di Ferrovie dello Stato… e pensare che ero riuscito a trovare qualcosa di positivo… mi rimangio subito tutto :-) Mi dicono che o l’utene o la password sono sbagliati… ma mi dicono anche che mi restano ancora 4 tentativi (su 5 ndr)… il che a casa mia significa che l’utente è giusto altrimenti quale account disattivi? :-P …direi che hanno un brutto rapporto con i DateTime… Alla fine faccio tutto quello che devo fare per comperare l’abbonamento… e si spacca tutto :-/… la sessione è il male… usata così poi fa veramente...

posted @ martedì 27 ottobre 2009 17.00 | Feedback (5)

ICommand e gli elementi disabilitati.

Durante la preparazione del materiale per il corso del mese prossimo salta fuori questa piccola rogna che mi segno per i posteri ma che devo indagare un po’ meglio: se avete un elemento Wpf che supporta l’infrastruttura di commanding, quindi un ICommandSource, in binding con un ICommand e nel momento in cui lo stato del commando cambia (evento CanExcecuteChanged) l’elemento Wpf è disabilitato (IsEnabled == false) la variazione di stato del comando viene ignorata e non viene rivaluata (CanExecute) quando l’elemento Wpf torna ad essere abilitato. Qualcuno ha avuto esperienze simili? .m

posted @ martedì 27 ottobre 2009 13.00 | Feedback (0)

La preparazione…

…come ho già detto sto cercando di avvicinarmi ad una metodologia di lavoro gestione del tempo che sia il più produttiva possibile e il meno stressante possibile… sembra un’utopia ma sto scoprendo pian piano che non lo è :-)   Per ora ho messo in pratica alcune semplici regole: Da qualche anno: Get Things Done: ogni cosa che mi precipita addosso viene semplicemente pianificata, in questo senso un buon uso/organizzazione/conoscenza di Outlook è veramente importante; Da una settimana circa sto studiando/applicando la Tecnica del Pomodoro: per ora lo strumento principe...

posted @ martedì 27 ottobre 2009 12.27 | Feedback (4)

è proprio un altro mondo…

vai all’MVP Global Summit e scambi quattro chiacchere, come se nulla fosse, con Anders Hejlsberg; ti presenti in una mailing list come nuovo membro e Brian Harry risponde e ti dice che settimana prossima sarà a Roma e ti invita a cena… sei in coda in mensa e quello dietro di te è Rich Kaplan; non ho parole, sto cercando di pensare ad un paragone con qualcosa qui in Itaglia… ma proprio non ci riesco. .m

posted @ martedì 27 ottobre 2009 8.29 | Feedback (1)

…adesso è un po’ meglio :-)

rispondo a Nicolò. L’originale è un Gadget per la sidebar che potete trovare nella Gallery di Live ma dopo un po’ di smanettamenti e customizzazioni è decisamente migliorato: adesso fa esattamente quello che mi serve, l’ultima minch*atina che mi manca è un bel file wave con il trillo tipico da contaminuti, poi si che posso cucinare come si deve :-) .m

posted @ lunedì 26 ottobre 2009 12.41 | Feedback (6)

Ma quanto è ben fatto Asp.Net MVC!

Non sono propriamente uno sviluppatore web, o almeno non lo sono più in modo assiduo da qualche anno, quindi sono rimasto un po’ indietro :-) Da un anno, abbondante, a questa parte in bottega stiamo seguento un cliente, di dimensioni ragguardevoli, nello sviluppo di una soluzione di content publishing; sono entrato nel team da poco e siccome una parte corposa del progetto è basta su Asp.Net MVC avevo bisogno di recuperare il tempo perso e nel frattempo prendere confidenza con il framework MVC, naturalmente non potevo farlo pesando sulle spalle del team, almeno non per la parte prettamente infrastrutturale....

posted @ lunedì 26 ottobre 2009 10.00 | Feedback (2)

Vodafone: servizio terzomondista

Non sono arrabbiato, sono semplicemente imbufalito. Stamattina accendo il telefono e mi becco un laconico “sim registration failed”, chiamo Vodafone e scopro che mi hanno disattivato il numero… perchè? perchè non ricarico da troppo tempo… so che nel contratto è scritto e quindi non mi lamento della procedura, quello che mi fa veramente andare in bestia è che mi spammano di SMS a nastro con promozioni, o presunte tali, e il sistema automatico non prevede di avvisare un cliente (è vero è sbagliato… sono un vecchio cliente, quindi non conto nulla) che usa quel numero da circa 10 anni...

posted @ lunedì 26 ottobre 2009 9.58 | Feedback (0)

Non è proprio un pomodoro…

… ma vediamo se riusciamo a mettere un po’ di ordine nel marasma di cose che mi assillano. .m

posted @ lunedì 26 ottobre 2009 7.46 | Feedback (5)

[OT] razzismo

il razzismo è una cosa detestabile, ogni forma di sfregio che ha come fondamento e fa leva sulla diversità è bieca e detestabile, anche se queste parole non riescono ad esprimere la rabbia che il razzismo fa crescere in me. Quello che però, seriamente, mi chiedo è: detestare un razzista è una forma di razzismo? .m p.s.: non c’è nessun riferimento a fatti o persone pubblici, semplicemente ad avvenimenti molto privati.

posted @ domenica 25 ottobre 2009 14.43 | Feedback (4)

“pirletti” crescono :-)

.m

posted @ domenica 25 ottobre 2009 11.01 | Feedback (3)

Le configurazioni e gli ambienti: un rapporto difficile

Sappiamo già che le cose cambieranno, ma finchè non usiamo Visual Studio 2010 e non capiamo come far funzionare quella cosa anche in progetti non web dobbiamo arrangiarci. Il problema è abbastanza tipico ed è molto semplicemente che la configurazione della macchina di sviluppo è sempre diversa dalla configurazione delle macchine di test che è sempre diversa dalla configurazione della macchine di preproduzione che a sua volta è sempre diversa da quella delle macchine di produzione… respiro :-) La cosa importante è che: va bene che sia così; non ha...

posted @ sabato 24 ottobre 2009 10.00 | Feedback (0)

I’m lovin’ it

…no more words! :-) .m

posted @ sabato 24 ottobre 2009 9.54 | Feedback (0)

Fantastico, semplicemente fantastico

La nuova Team Build di TFS 2010 è semplicemente fantasmagorica, hanno rivoluzionato il mondo e adesso il driver della Team Build non è più il già eccelso motore di MSBuild ma ci siamo evoluti verso Workflow Foundation 4.0: Questa è una piccola parte, notare la scrollbar sulla destra, del workflow del build template di default. Se andiamo a spulciare nei meandri troviamo questo: che esegue la vera e propria build del progetto o dei progetti compresi nella solution, tutto il resto, i “fronzoli”… si fa per dire…, è completamente gestito da WF4.0...

posted @ venerdì 23 ottobre 2009 19.09 | Feedback (2)

Senza parole…

Fogna di 1° classe, Milano-Venezia 17.25 .m

posted @ venerdì 23 ottobre 2009 18.50 | Feedback (1)

[OT] Se il treno su cui sono adesso…

…scoppiasse per strada si risolverebbe il problema del sovraffollamento del pianeta… :-) Ma poi io mi chiedo… ma perchè la gente non si lava? .m

posted @ venerdì 23 ottobre 2009 17.24 | Feedback (1)

[OT] quante stupidate…

Si vede che oggi il mio lavoro dipende dagli altri… e che i ritmi degli altri sono un filino più lenti dei miei… Fonte: http://www.metronews.it il mio amico Luca che si occupa di antropologia da anni mi dice: Mauro, sai quale è il problema vero? è che i bambini di oggi non hanno più una vita sociale, non giocano in cortile, non litigano per un pallone e non vengono esclusi se dicono “il pallone è mio e io non gioco più”. Questa degenerazione della società moderna fa si che al...

posted @ venerdì 23 ottobre 2009 16.20 | Feedback (3)

[OT] Secondo me posso viaggiare gratis.

Quello qui sopra è un estratto della “Carta dei servizi 2009” di Ferrovie dello Stato, se quella roba ha un benchè minimo valore legale siamo autorizzati a non pagare il biglietto. .m

posted @ venerdì 23 ottobre 2009 15.05 | Feedback (1)

Meticolosità e Organizzazione

Tutto ha un inizio e se iniziamo bene siamo già a metà dell’opera, questo recita un vecchio adagio… nel nostro caso non siamo proprio a metà dell’opera ma iniziare bene è essenziale. Cosa succede quando dobbiamo avviare un nuovo progetto? tipicamente apriamo Visual Studio e creiamo un nuovo progetto del tipo che più ci piace :-) pessima scelta perchè se il “robo” che state creando deve vivere ed essere manutenuto vi siete già tagliati le gambe :-) Perchè? perchè Visual Studio ha una serie di “vizi” che su un progetto corposo diventano un problema, una prima cosa è...

posted @ venerdì 23 ottobre 2009 13.47 | Feedback (5)

Tales of a Visual Studio Addicted

Spesso e volentieri nascono interessanti discussioni su come salvarsi la vita durante l’uso quotidiano dello strumento più amato :-D: Visual Studio. Trovo che lo strumento sia potentissimo e veramente di pregio ma ha anche lui i suoi limiti e quando ci spingiamo oltre la vita diventa veramente complessa e frustrante, tipicamente questo succede quando chiediamo troppo. Vorrei quindi raccogliere in una nuova categoria le esperienze di tutti i giorni, vediamo che ne esce. Il problema credo sia molto sentito e la cosa importante da dire è che è un non problema, io ho da sempre un buon...

posted @ venerdì 23 ottobre 2009 10.58 | Feedback (5)

Tfs Integration Platform

Se, e ripeto se, questa cosa vede la luce, faccio santo qualcuno :-) Leggendo questa serie di post mi vengono i brividi al pensiero di quello che potrei mettere in piedi con un TFS “locale” sincronizzato con un TFS “aziendale” (stiamo lavorando per voi :-)). Team Build “locale” con la mostruosità di vataggi che questo comporta; possibilità di lavorare offline con una experience da paura perchè sarebbe esattamente come essere online; Una bolletta 3G un po’ meno salata, che non guasta mai ;-) .. chi più...

posted @ venerdì 23 ottobre 2009 10.03 | Feedback (2)

Se ogni tanto ci riesci…

… è decisamente peggio che non riuscirci mai. Stamattina causa sciopero ATM ho dovuto anticipare tutto di circa mezz’ora ed è successa una cosa decisamente inaspettata: sono salito su un treno e non su un lebbrosario; sono partito in orario; sono arrivato puntuale; ho potuto appoggiare lo zaino sul pavimento senza che strani esseri lo intaccassero; Non sono mica abituato… :-) Questo significa che la possibilità di avere un servizio decente, non dico eccelso, dico solo decente c’è; il tutto però non fa...

posted @ venerdì 23 ottobre 2009 9.18 | Feedback (0)

Windows XP, Office 2003…

Non ero più abituato… sono da un cliente per una consulenza e non posso usare la mia macchina quindi me ne danno una loro: Windows XP Pro; Office 2003; Visual Studio 2005; Che confrontato al mio: Windows 7 x64; Office 2010 TP; Visual Studio 2008; Visual Studio 2010 Beta 2; E’ preistoria :-) .m

posted @ giovedì 22 ottobre 2009 9.45 | Feedback (0)

[OT] Pensieri sparsi…

perchè scendi dal treno, dai una mano ad una signora a scaricare una pesante borsa e questa ti guarda e sorride come se fossi un marziano? che senso ha riscaldare la metropolitana costantemente? stamattina sono salito sulla linea verde di Milano e credo ci fossero 60°… il vagone era farcito di persone che respiravano, evidentemente bastano e avanzano; perchè un treno riesce a partire in orario, cosa mai vista in quest’ultimo periodo, e accumulare su una tratta di 20’ un ritardo di 35’; perchè la sopracitata compagnia...

posted @ mercoledì 21 ottobre 2009 17.57 | Feedback (4)

Connettersi a TFS 2010 da VS2008

Innanzitutto dovete installare questa patch: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=cf13ea45-d17b-4edc-8e6c-6c5b208ec54d Dal tipico nome sintetico :-D, poi attenzione che per aggiungere il server al Team Explorer di VS2008 dovete specificare a mano tutto l’url http/https: .m

posted @ mercoledì 21 ottobre 2009 7.07 | Feedback (0)

VS2010 + SqlCompact == “dll hell” :-)

ok, questo è un problema! Ho felicemente installato la beta 2 di Visual Studio 2010 e ho migrato un progetto personale a cui sto lavorando almeno ho una buona scusa per usarlo, altrimenti va a finire che i primi giorni ci gioco poi il lavoro pressa e mollo… L’inghippo però è che il buon Visual Studio arriva con una versione diversa di Sql Compact, per l’esattezza la 3.5 Sp2 beta 2, che lo stesso VS, da quel che ho capito, usa per l’intellisense. Da dopo l’installazione il progetto personale, anche prima della migrazione quindi anche se usato...

posted @ martedì 20 ottobre 2009 19.20 | Feedback (0)

TFS.2010.Beta2 -> up & running

Anche quello up & running, un paio di note: Evito di spiegare cosa ho fatto, Lorenzo è stato esaustivo; Sql Server: su una macchina x64 non potete usare la Express; Sql Server: è necessario avere installato il full-text-search; Wizard di configurazione: si accorge che avete un Sql Server installato e vi propone di usarlo “nomeMacchina\nomeIstanza” non toccatelo… io ci avevo messo “.\NomeIstanza” e si è incrocchiato tutto… maledetto me :-) .m

posted @ martedì 20 ottobre 2009 19.19 | Feedback (2)

VS.2010.Beta2 -> up & running

L’installazione è filata via liscia, okkio all’SDK per Silverlight 3.0, adesso incrociamo “i ditini” :-D   Questa era la cosa che mi mancava di più, avendo Office x64 mi ero perso l’AddIn per TFS: Conferma che funziona tutto da VS2010 verso il TFS2005 il che secondo me non è niente male :-) Il prossimo passaggio probabilmente sarà avere un bel TFS in locale così posso scroccare il Build Server, essendo io un utente remoto è sempre un delirio. .m

posted @ martedì 20 ottobre 2009 19.18 | Feedback (1)

NHibernate: nullable one-to-one

Questa è una di quelle cose che non si drovrebbero fare… ma se avete un db che non potete toccare non è che ci siano molte scappatoie :-) Il bello è che il tool risponde alla grande, anche se in questo caso deve essere un po’ addomesticato. Lo scenario è questo: Mappato su un db con, più o meno, questa struttura: Nel dominio avete il concetto di Preventivo (Estimate) e di Contratto (Agreement) e le 2 entità sono relazionate tra loro: ad un preventivo potrebbe corrispondere uno ed un solo contratto...

posted @ lunedì 19 ottobre 2009 19.32 | Feedback (0)

Testare i test :-)

è un problema :-) [TestMethod] public void ExceptionTestWrapper_Try_using_non_buggy_code_should_not_fail() { Tester.Expecting<ArgumentNullException>( "expectedParamName" ).Try( () => { new ClassUnderTest( null ); } ); } [TestMethod] [ExpectedException( typeof( AssertFailedException ) )] public void ExceptionTestWrapper_Try_using_non_buggy_code_but_with_wrong_expected_paramName_should_fail() { Tester.Expecting<ArgumentNullException>( "invalidParamName" ).Try( () => { new ClassUnderTest( null ); } ); } [TestMethod] [ExpectedException( typeof( AssertFailedException ) )] public void ExceptionTestWrapper_Try_using_buggy_code_should_fail() { Tester.Expecting<ArgumentNullException>( "expectedParamName" ).Try( () => { new ClassUnderTest(...

posted @ domenica 18 ottobre 2009 9.14 | Feedback (1)

FluentNHibernate e le proprietà da non mappare…

Supponendo di aver bisogno di mappare un’entità che espone delle proprietà calcolate con FluentNHibernate avete qualche problema… L’inghippo di fondo è questo: quando mappate una entity, in fase di inizializzazione dei proxy (e qui vado a intuito) il proxy builder cerca tutte le proprietà e si lamenta, con una sonora exception, se una delle proprietà non è virtual o se manca del set accessor. Il messaggio di errore poi è quantomeno fuorviante :-) Girovagando su internet si trovano tante colorite soluzioni (pezze direi io) tra cui la più bella è quella di disabilitare in toto il proxy validator:...

posted @ venerdì 16 ottobre 2009 17.05 | Feedback (2)

NHibernate: document identifier

Lo scenario più semplice è quello della generazione del “numero fattura” in fase di insert del nuovo documento, tralasciamo per ora le più svariate possibilità legate al concetto di bozza, ad un certo punto avete la necessità di generare questo benedetto numero che deve sottostare a determinate regole. La stessa cosa può succedere in altri casi, come ad esempio la generazione di un codice cliente, e questo ci permette di generalizzare dicendo che: Abbiamo la necessità di generare un codice univoco; Questo codice univoco deve essere umanamente leggibile e avere un significato nel...

posted @ giovedì 15 ottobre 2009 6.15 | Feedback (3)

NHibernate: stra-puuteeenzaaa!

Scenario:   un dominio molto banale mappato su una singola tabella con una colonna che fa da discriminante, è così, è legacy e me lo devo tenere :-). Adesso il nostro simpatico utente vuole fare una ricerca per tutti i Subject, a prescindere dal fatto che siano Company o Person, che contengono in Subject.Name qualcosa tipo (Like) ‘%mauro%’: una sorta di full-text. Banale direte voi: var criteria = querySpec.Keywords .AsSqlServerKeywords() .Aggregate( session.CreateCriteria<Subject>(), ( a, kw ) => a.Add( Restrictions.Like(...

posted @ lunedì 12 ottobre 2009 14.57 | Feedback (3)

[OT] Adesso siamo in 3

.m

posted @ domenica 11 ottobre 2009 17.42 | Feedback (6)

AOP, Validazione e performance: un po’ di considerazioni

Tempo fa ho introdotto PostSharp, dal primo approccio è passato ormai un anno e da qualche mese lo uso con soddisfazione, in produzione, per la gestione della parte noiosa del tracing. In questi giorni ho ripreso in mano la parte di AOP per la validazione dei parametri di input di un metodo, tipicamente quello che si fa è questo: void StandardValidation( String v ) { if( v == null ) { throw new ArgumentNullException( "v" ); } } oppure, evolvendosi...

posted @ sabato 10 ottobre 2009 19.25 | Feedback (1)

Wpf e la message pump

La necessità è quella di intercettare il plug/unplug di un qualsiasi device USB. Il problema è che il sistema operativo sparapacchia la notifica nella massage pump e il subclassing in Wpf è concetto inesistente… Quindi? E’ un po’ contorto ma alla fine con una manciata di righe di codice ci si arriva: Public Interface IHardwareMonitor Event DeviceAttached As EventHandler Event DeviceRemoved As EventHandler End Interface definiamo quello che vogliamo ottenere: un semplice observer. The Trick A questo punto lo possiamo implementare, ad esempio, in questo modo: Public NotInheritable...

posted @ sabato 10 ottobre 2009 11.01 | Feedback (2)

[OT] Questa non l’avevo ancora vista

Pubblicità umana:   Torino, un paio di giorni fa. .m

posted @ venerdì 9 ottobre 2009 13.44 | Feedback (1)

Ho d.d.d.isinstallato ReSharper…

… per la seconda volta, insopportabile. nei file xaml è inutilizzabile, oltre al fatto che ha un fastidiosissimo bug (di lunga data) per cui il resize dell’editor smin*hia (scusate il francesismo) tutto; in certi momenti lo trovo mostruosamente invasivo; molte operazioni sminch*ano (a rieccolo :-)) il focus, per cui fanno si quello che devono ma poi il focus non è più sull’editor dove eravate prima… e sminchi*te voi tutto :-) il suo intellisense quando utilizzate un po’ di lambda syntax (ad esempio per agganciare gli handler agli...

posted @ giovedì 8 ottobre 2009 8.10 | Feedback (10)

Meu amigo Charlie Brown

Chi vuole intendere intenda :-D .m

posted @ giovedì 8 ottobre 2009 7.42 | Feedback (0)

[OT] Superficialità

Oggi sono OT, Oltremodo sTufo :-) Nonostante il mio essere ateo credo proprio che la superficialità possa essere un fantastico peccato capitale, per quello che i peccati capitali possono valere… Trovo veramente fastidioso quando ho a che fare con persone superficiali che si fermano al “titolo” senza leggere il resto della storia, questa cosa vale per qualsiasi cosa dalla lettura delle notizie su un giornale alle considerazioni tecniche su un prodotto/tecnologia. .m

posted @ lunedì 5 ottobre 2009 19.13 | Feedback (3)

[OT] Puuteeeenza!

  Alla faccia dello schermo… peccato che io abbia un 13.3 e non abbia nessun monitor esterno collegato… Driver delle mie brame perchè sei tu :-D .m

posted @ lunedì 5 ottobre 2009 12.31 | Feedback (3)

[OT] Stupore

Nel mio viaggio verso la Bottega le peripezie sono molte… una delle tante sono gli invisibili, quegli esseri umani che il mondo semplicemente non sa che esistono, ha troppa fretta per sapere che esistono, stamattina per la prima volta mi è successa una cosa “curiosa” ho incontrato una persona, era vera, era anziana, era sporca, chiedeva soldi e si vergognava di farlo… sono passato oltre, era invisibile, ma mentre camminavo per via Torino una serie di pensieri si sono rincorsi, mi sono fermato sono tornato indietro ho tirato fuori dalla tasca quello che avevo in moneta, tutto quello che avevo,...

posted @ lunedì 5 ottobre 2009 11.13 | Feedback (0)

[OT] Pendolari…

I pendolari sono le persone più fortunate del mondo, oggi ero su un simpatico carro bestiame che da Treviglio mi ha portato verso Milano in Bottega e ad un certo punto, entrando in stazione centrale, noto che corre di fianco al treno una simpatica pantegana. I pendolari non si rendono conto di quanto sono fortunati, ci sono persone che per avere un contatto così stretto con la natura devono abbonarsi a Sky e guardare un documentario sul National Geographic. .m

posted @ lunedì 5 ottobre 2009 10.41 | Feedback (3)

Memento: Non ti scordar mai di me…

Pian piano il tutto sta prendendo forma, i nodi vengono al pettine e le soluzioni (almeno per ora, è il bello del nostro lavoro, panta rei) sembrano finalmente essere soluzioni e non semplici pezze, non puzzano insomma :-) Tutto parte da qui, cioè fondamentalmente dalla necessità di snellire la realizzazione di un’applicazione fortemente basata su M-V-VM e dalla necessità, evidenziata qui e qui, di fornire una UX che sia decisamente consistente. In questa direzione, e al crescere dell’applicazione, risulta rapidamente evidente che vi è la necessità di snellire e automatizzare il maggior numero possibile di task: quindi, come scegliamo...

posted @ domenica 4 ottobre 2009 11.36 | Feedback (1)

Un O/RM è per sempre… :-)

… o era un diamante… scherzi a parte, da un punto di vista tecnologico abbiamo già visto che non è vero che la scelta di un O/RM ci lega per la vita con questo però è essenziale che la scelta di un O/RM sia comunque oculata e ben ponderata rimpiazzarlo non è operazione da un pomeriggio. Nel mio piccolo ho avuto il piacere/dispiacere di avere a che fare con (in ordine alfabetico): Entity Framework (v1); Linq to Sql; NHibernate; Se devo scegliere un “vincitore”, di che cosa poi...

posted @ domenica 4 ottobre 2009 11.36 | Feedback (1)

UX: ma come sono abituati bene :-)

Secondo me ci stanno abituando un gran bene: ci sono alcune notifiche all’utente che hanno bisogno di “essere invasive senza essere invasive” :-), probabilmente fine a qualche anno fa una situazione del genere sarebbe stata gestita con un fastidiosissimo MessageBox. Il sistema adottato da IE, e anche da molti altri software, è comodissimo perchè è decisamente ben visibile e fastidioso (quindi attira l’attenzione) ma per nulla invasivo, un MessageBox sarebbe bloccante. Queste buoni abitudini però possono ritorcersi contro di noi perchè il nostro caro utente fa dei confronti tra il nostro software e quello degli altri...

posted @ venerdì 2 ottobre 2009 15.51 | Feedback (0)

Trattate bene il motore di Binding di Wpf

Okkio a questo scenario: var subjects = new EntityCollection<Subject>(); var dataView = subjects.DefaultView; subjects.Add( new Person() ); Adesso immaginate che dataView sia in binding con una ListView, dataView è IBindingListView e questo fa si che la ListView sia in grado di reagire alle variazioni che subisce dataView, ecco che il codice di cui sopra fa “magicamente apparire” nella ListView un nuovo item. Adesso fate questa cosa: var subjects = new EntityCollection<Subject>(); var dataView = subjects.DefaultView; for( var i = 0; i < 1000; i++ ) { subjects.Add( new Person() ); } La stessa cosa, ma un po’...

posted @ venerdì 2 ottobre 2009 10.03 | Feedback (0)

Andata!

MVP Once Again, grazie a tutti, in particolare al nostro super-lead gran visir dell’OOF :-D Ne approfitto anche per fare i complimenti ai nuovi, che ancora non conosco, e ai rinnovati. .m Technorati Tags: MVP Award

posted @ giovedì 1 ottobre 2009 16.21 | Feedback (1)

WeakReference, I love you!

Ayende ne ha parlato proprio in questi giorni, ed io è qualche settimana che giro intorno… anche se lo scenario è diverso. Unoa dei problemi delle differenze tra Wpf e Windows Forms è che per il mondo Wpf i concetti di IDisposable e di IComponent sono del tutto irrilevanti, del resto non ci sono risorse, aka handle ad esempio, da rilasciare. In Windows Forms sfruttavo il fatto di poter realizzare un IComponent e avere gratis la chiamata a Dispose nel momento in cui veniva fatta la Dispose del componente contenitore, ad esempio la Form. In molti casi deviavo...

posted @ giovedì 1 ottobre 2009 9.46 | Feedback (0)