Spiegatemi per quale motivo ogni volta che invio una email da gmail devo subire le conversione di tutte le occorrenze di "ASP.NET", "ADO.NET", e altre combinazioni del genere ad un link pubblicitario. Sinceramente trovo la cosa odiosa e stucchevole. Capisco la pubblicità a fianco alla mail, magari in target con il contenuto, tanto chissenefrega... ma inserire un link nelle mie mail suggerisce che sia io stesso a consigliare di visitare questo link...

Ci devo pensare... che sia arrivato il momento di tornare al buon vecchio client?

Technorati Tags: ,

Di fronte al seguente spezzone di codice uno potrebbe pensare che venga da un incauto programmatore...

   1: protected void Page_Load(object sender, EventArgs e)
   2: {
   3:     HyperLink1.Text = "View " + ChildrenColumn.ChildTable.DisplayName;
   4: }

... e invece è (uno dei tanti) estratti dai template dei DynamicData.

In buona sostanza significa: localizzazione? manco per sogno!

Ma non stiamo parlando di ASP.NET? Ci voleva proprio tanto?

Technorati Tags: ,,

Qualche giorno fa sono riuscito finalmente a sistemare un po' il mio studio a casa e quindi da un po' ho iniziato a lavorare su tastiera e monitor separati e non piu' direttamente sul portatile che invece rimane a fianco come secondo monitor.

Ecco che mi sono trovato di fronte l'ardua scelta di adottare una tastiera il cui feedback soddisfi il mio esigente tatto. Purtroppo mi sto rendendo conto che scegliere una tastiera adeguata e' un compito difficile. Nonostante abbia acquistato ben tre tastiere (2 Microsoft e 1 Logitech), l'unica che mi da la necessaria soddisfazione e conseguente velocita' e' quella "originale" del portatile. Il problema e' sempre lo stesso. La mia mano ha necessita' di una tastiera che non "opponga resistenza". Questo purtroppo non e' vero per 2 su 3 delle tastiere e tra esse la Logitech e' in assoluto la peggiore che oltre a "dimenticarsi" di rispondere alle mie dita un po' troppo spesso dato che richiede una notevole pressione, mi infastidisce con un clack-clack odioso. L'ultima tastiera, la Microsoft Natural Ergonomic Keyboard 4000 ha un feedback decisamente migliore ma non ancora quello che mi aspetterei. Pero' il suo uso mi regala un fastidioso affaticamento alle mani che probabilmente ormai sono assuefatte alle tastiere normali e rifiutano l'ergonomicita'.

Ora, reduce da tre tastiere e impossibilitato a continuare a provare tastiere dato il loro non irrisorio costo mi chiedo quale sia la tastiera migliore che si puo' trovare sul mercato. Sono anche disposto a spendere un po' dato che la qualita' del mio lavoro dipende in gran parte da questo strumento. Chissa se qualcuno di voi non abbia qualche preziosa indicazione da darmi...

Technorati Tag:

Sto seriamente pensando se sia il caso di guardare le Olimpiadi in televisione quest'anno.

Credo che di tutte le manifestazioni sportive televisive le Olimpiadi siano le uniche che riescono a catalizzare la mia attenzione, nonostante la inutile dose di campanilismo che nel nostro paese si portano dietro. Quest'anno però c'è il fatto che partecipare all'evento, anche solo guardandolo alla televisione può suonare come l'essere complice di uno dei peggiori regimi dei tempi moderni: la Cina.

Devo dire perciò che sono molto indeciso. Mi piace l'idea di cogliere l'occasione per mostrare a mia figlia gli innumerevoli sport che vi fanno parte, anche i più esotici, e considerato che la prossima volta avrà 10 anni, potrebbe essere un'occasione irripetibile nella sua precocità. Ma questo giustifica il chiudere un occhio sul mancato rispetto dei diritti umani di almeno un miliardo di persone?

E non va nemmeno dimenticato che il Dalai Lama ha chiesto ufficialmente di non boicottare le Olimpiadi...

Ci penso su... ma mi piacerebbe sapere come la pensate voi.

Technorati Tag: ,,

Sto provando Resharper 4.0 da qualche giorno e come al solito lo trovo uno strumento utile e ben fatto che come dalla versione 3.0 è anche finalmente "delicato" nell'uso delle risorse della macchina e di conseguenza maggiormente usabile.

Quello che mi ha un po' indispettito è l'abitudine di Resharper di suggerire l'uso indiscriminato della keyword "var". E' pur vero che questo non ha alcun impatto nell'applicazione, ma la leggibilità del codice ne perde e anche parecchio. Perciò a mio parere la prima cosa da fare non appena installato Resharper è di recarsi nelle opzioni e sotto Code Inspection > Inspection Severity disabilitare le ultime due opzioni della sezione Code redundancies in particolare quelle che recitano:

  • Use 'var' keyword when initializer explicitly declares type
  • Use 'var' keyword when possible

Un bel "Do not show" a queste opzioni ricondurra Resharper alla ragione e ci lascerà scrivere il codice così come si dovrebbe fare cioe esplicitando il tipo ovunque possibile. A mio parere l'uso della keyword 'var' è legittimo esclusivamente quando abbiamo a che fare con degli anonymous types. Ogni altro uso è sostanzialmente uan illegittima scorciatoia.

Technorati Tags: ,

HttpWatch in action

Per puro caso mi sono imbattuto in questo , e devo dire che a pochi minuti dall'installazione l'ho già inserito nella top-ten degli strumenti che si possono considerare un must-have.

E' davvero ben fatto, leggero, chiaro, preciso, veloce e soprattutto consente di filtrare efficacemente le chiamate per raggiungere puntualmente quelle che servono con estrema facilità.

Io lo sto trovando utile per monitorare le chiamate ai servizi wcf delle quali è in grado di intercettare i messaggi qualora serva trovare le eventuali anomalie.

HttpWatch Pro non è uno strumento gratuito, ma anche se il prezzo non è esattamente economico, la sua efficacia merita la spesa se avete esigenze di questo tipo.

Technorati Tags: ,,

Beh, ora nessuno potrà dire che io non ci abbia provato. Mi sono diligentemente iscritto a Twitter, ho postato per qualche giorno, ho perfino messo il codice nel blog per mostrare i messaggi...

Poi quest'oggi ho guardato nella home page e mi sono reso conto che l'ultimo mio post risaliva a più di un mese fa...  ho tolto tutto e Twitter è andato.

Mi chiedevo quale potesse essere l'utilità di Twitter... e in tutta sincerità continuo a chiedermelo...

Technorati Tag:

Credo che ognuno di noi abbia degli "indicatori psicologici" che gli suggeriscono l'incedere del tempo, sia in termini di ritmo circadiano, sia in modo più ampio in termini stagionali.

Per quanto riguarda l'estate, personalmente ho un solo "indicatore" che mi conferma di essere o meno entrati nella bella stagione: il profumo dei tigli. Il legame tra l'avvertire questo aroma e immediatamente capire che la stagione è cambiata è tutt'uno.

Probabilmente il tutto deriva dall'avere creato inconsciamente questo legame da bambino. A fianco a casa mia infatti c'era un filare di tigli e puntualmente al termine delle scuole iniziavano ad emettere il loro profumo dolciastro. Et volià, ecco che l'ìinformazione si è impressa nella mia mente.

E voi? Qual'è la cosa che più vi indica l'arrivo dell'estate?

Technorati Tag: ,,

Ho messo in linea una selezione delle foto che ho scattato durante lo spettacolo dei delfini. Far assistere mia figlia a questo spettacolo era il vero obbiettivo della permanenza a Cattolica. Ne valeva davvero la pena. Se vi capita di passarci vi consiglio di andarlo a vedere perchè è davvero bello ed emozionante:

 

Technorati Tag: ,,

Daccordo che gli indirizzi a Venezia sono sempre criptici, ma la semplificazione di VirtualEarth mi sembra un tantino troppo azzardata...

Sestriere di Castello

Per inciso "Castello" è il nome di uno dei . A Venezia gli indirizzi sono sempre espressi come un numero civico all'interno del sestriere (Castello 4533, Dorsoduro 2234). Però calli e campielli esistono...


Può suonare come un motto di stampo politico, ma in questo caso la politica non c'entra nulla, almeno non quella cui in Italia siamo tutti allergici. Il fatto è che letti e riletti gli di ieri sera, m'è venuto in mente un altro punto che vorrei portare alla vostra riflessione.

Mi riferisco all'abitudine di "risolvere problemi che non si ha". Vi prego, considerate il fatto che  il nostro lavoro è già abbastanza difficile da solo, senza dover anche estrarre la sfera di cristallo e scrutarci dentro. Questa pratica ha principalmente due problemi:

  1. La sfera di cristallo non ce l'avete (e se l'avete ci sono almeno 1000 modi migliori di usarla) perciò tutto quello che potrete prevedere sara sempre e solo una piccola, personale e limitata parte di quello che realmente potrà accadere alla vostra applicazione nel futuro... ergo lasciate perdere.
  2. Assodato che tutto quello che prevederete probabilmente si rivelerà sbagliato, tutto il lavoro che farete a coprire requisiti che escono dalla suddetta sfera è semplicemente tempo buttato al vento. Il risultato sarà che alla fine vi troverete con un sistema che fa bene una cosa che non vi serve. Questo naturalmente sempre che riusciate a farlo bene... visto che nel frattempo ci sarà qualcuno che ripetutamente vi stresserà perchè le cose utili non ci sono.

Questo si applica sia a livello macroscopico che microscopico. Progettare architetture "galattiche" o scrivere in anticipo una classe che forse-un-giorno-se-siete-fortunati-dovrebbe-potenzialmente-servirvi-ancora appartengono entrambe allo stesso problema.

Credetemi meglio concentrarsi innanzitutto a risolvere i problemi che si ha. L'unica concessione al futuro che posso ammettere è quella di pensare a non realizzare qualcosa che non può evolvere, ma questo il più delle volte è un problema che ha a che fare con l'architettura e con la vostra conoscenza della tecnologia che dovete usare. Sapere che un particolare tipo di oggetto non scala e cercare di evitarlo ad esempio è una precauzione accettabile, ma costruire una architettura che nessuno vi ha mai chiesto non è una buona idea.

Perciò, la prossima volta che qualcuno esclama qualcosa del tipo: "Ma se poi il cliente vorrà anche..." oppure "Forse un giorno..." fermatevi un attimo e chiedetegli quanto vi costerà oggi fare una cosa che probabilmente nessuno vi pagherà mai... magari viene fuori che li mette di tasca sua!

Technorati Tag: ,

Mi capita spesso di sentire persone che giustificano la mediocrità delle proprie soluzioni adducendo problemi di scarso tempo e sempre più spesso tendo a vivere con fastidio questo tipo di situazioni perchè il più delle volte chi si giustifica ha anche l'ardire di aggiungere che è costantemente in ritardo e per questo continua ad accumulare soluzioni mediocri le une sulle altre. Ma come... si buttano giù quantità industriali di codice, senza un minimo di analisi, senza fermarsi un attimo a coordinarsi, senza meditare un po' sul design, tutto in nome del risparmio di tempo e alla fine ci si ritrova in ritardo oltre che con una soluzione che ha ben poche possibilità di rivelarsi vincente sul mercato?!?!

Il problema che tutti dimenticano è che la fretta si paga e prima o poi si trasforma in ritardo perchè i danni che si procurano con questo incedere di solito diventano malfunzionamenti, requisiti mancati, o semplicemente rigidità nell'architettura che impediscono il poter soddisfare nuovi requisiti. Un po' come se per attraversare una sala di cristallerie si decidesse di farlo di gran carriera. Si arriverà certamente in fondo molto rapidamente ma poi si sarebbe costretti a tornare sui propri passi per riparare i danni che si sono fatti, a trovare una scopa e una paletta, a raccogliere i frammenti più piccoli e alla fine a conti fatti per attraversare quella sala ci si sarà messo il triplo del tempo necessario.

Tutto questo per arrivare ad alcune considerazioni:

  1. quando pensate alle vostre soluzioni non abbiate paura di perdere tempo ad analizzare quale sia il modo migliore di condurre il vostro lavoro e di architettare la soluzione. Una classe pensata bene per quello che deve fare vi porterà così tanti benefici da annullare l'eventuale ritardo iniziale in tempo brevissimo.
  2. se dovete risparmiare tempo è sempre meglio rinunciare a funzionalità piuttosto che a qualità. Mi rendo conto che questo cozza con i requisiti che vi da il cliente, ma il tempo purtroppo è una misura fissa e quindi fare più cose nello stesso tempo significa semplicemente farle peggio. Se poi dovrete tornarci sopra per sistemarle giocoforza vi rimangerete con gli interessi il tempo che avete risparmiato. Una cosa così si può anche scegliere coscientemente per motivi "commerciali" (i peggiori intendiamoci) ma lavorare sempre così significa imbrogliare se stessi oltre che i propri clienti.
  3. La mediocrità è dei perdenti. Sembra una battuta, ma è la pura verità. Se iniziate un lavoro pensando in modo mediocre il vostro risultato sarà qualcosa compreso tra lo scarso e al massimo il mediocre (e probabilmente tenderà fortemente allo scarso). Se invece iniziate pensando in grande le vostre possibilità di fare un ottimo lavoro aumentano in partenza. Ma attenzione, pensare in grande non significa "strafare". Il punto 2 è sempre valido, pensare e fare sono due cose ben diverse.
  4. Non pensate mai di inventare l'acqua calda. Può sembrare un punto che esula dall'argomento del post, ma spesso e volentieri fermarsi a considerare tecnologie esistenti può far risparmiare tempo in modo esponenziale. Non è bello arrivare in fondo e rendersi conto che se si fosse fatto un minimo di software selection o di formazione probabilmente un'intero sottosistema della vostra architettura l'avreste trovato già bello e pronto. Se poi considerate che chi ha sviluppato un prodotto consolidato ha probabilmente impegnato decine se non centinaia di persone per realizzarlo, testarlo e perfezionarlo ecco che il risparmio decuplica in valore.

Credetemi, quanto ho scritto può sembrare banale, scontato e ovvio, ma non è così. Nella mia ormai abbastanza lunga carriera in questo strano lavoro mi sono scontrato e continuo a scontrarmi con palesi violazioni di questi semplici assiomi e sempre queste violazioni finiscono per condurre al fallimento dei propri obbiettivi.

Technorati Tag: ,,