Epilogo 2011

by beren 31. dicembre 2011 16.19

Due parole per chiudere un anno che non penso in tutta onestà ricorderò con molta nostalgia. Quasi tutte disattese le previsioni ed i propositi dell'anno che chiude i battenti tra poche ore. Questo anno sarà certamente ricordato per lo Spread e la crisi socio economica che ci ha investiti in pieno come un treno in corsa fa con una macchina in panne nel bel mezzo di un passaggio a livello. Io onestamente lo ricorderò anzitutto per il lavoro che ha preso il sopravvento ormai su gran parte della mia vita a scapito purtroppo di un po' tutto ciò che lavoro non proprio è. Certo ha comunque portato in dono una promozione ed un'esperienza ormai immininente in Argentina, ma il prossimo anno dovrà rispondere ad alcune domande anche su quel lato. Io certo lo ricorderò anche per i matrimoni: francamente ne ho perso il conto tra amici, colleghi ed ex... Non sarà anche questo un messaggio? Vedremo. Per il momento mi coccolo i prossimi sei mesi lavorativi, o l'idea che di essi ne ho in attesa poi di tastare con mano sul campo ciò che la realtà mi riserverà. Stiamo a vedere. 

Tags: , , ,

General

Dynamic Data Entities - Customizzare le Foreign-Key

by beren 1. novembre 2011 14.58

Oggi vediamo come customizzare il controllo delle Foreign-Key visualizzato per default nei Dynamic Data Entities. Questo controllo visualizza i dati di una tabella terza rispetto quella che si sta editando e che viene linkata tramite una chiave esterna (Foreign Key appunto). Dato che di default viene semplemente riempito con un field dell'entità scelto in base alla PK della stessa, non sempre può essere immediato da utilizzare. Quello che faremo è visualizzare un composizione di più campi invece che uno singolo ed ordinare gli elemento rispetto ad un field specifico.

1. Visualizzazione di un campo composto: la dropdown usata nel controllo della FK (Foreign Key) può essere customizzata sovrascrivendo la funzione ToString() con un metodo custom come ade esempio illustrato qui sotto:

[C#]

    [MetadataType(typeof(TB_SEASONMetadata))]
    public partial class TB_SEASON
    {         
         public override string ToString()
         {
             return NAME + DESCRIPTION;
         }
    }

 

2. Ordinare i valori nella DropDown: per ordinare rispetto ad un campo gli oggetti all'interno della dropdown di FK occorre usare il decoratore DisplayColumn specificando il nome del field-colonna su cui effetturare l'ordinamento in questa maniera:

[C#]

    [MetadataType(typeof(TB_SEASONMetadata))]
    [DisplayColumn("NAME","NAME", false)]
    public partial class TB_SEASON
    {         
         public override string ToString()
         {
             return NAME + DESCRIPTION;
         }
    }

 

In effetti resta la perplessità sul fatto che il primo parametro di tale decoratore sia un field che a tutti gli effetti poi non è utilizzato: in fatti nell'esempio il field NAME è stato specificato essere la DisplayColumn quando in realtà verrà comunque visualizzato l'override del ToString()... In ogni caso il secondo parametro che è la sortcolumn funziona correttamente e noi otteniamo il risultato sperato.

Tags: , ,

Developer Cheat

Good bye Mr Jobs!

by beren 6. ottobre 2011 19.30

Ovviamente non mi addentro più di tanto nelle disquisizioni su quanto sia stato o meno geniale Jobs... Sono i numeri e la fama che oggi Apple nutre in tutto il mondo a soffermarla. Piuttosto la cosa che più di tutte mi ha affascinato di quest'uomo e della sua idea è quell'essere così lontano dalle forme universali, dall'essere per tutti. I suoi prodotti , una volta di nicchia, oggi di massa, si sono contraddistinti per un principio fondamentale diametralmente opposto a quello di libertà tanto cari all'america. I suoi prodotti vivono in mondo tutto loro dal quale praticamente non si può comunicare con l'esterno e viceversa. Un concetto ormai "outdated" per il concetto e il vivere moderno, ma che ha fatto di Apple un successo clamoroso. Inutile dire che non condivida questo modo di fare software/hardware esclusivo ed autoreferenziale, io sono tra quelli che pensano che senza Microsoft la diffusione del PC così come è ora non sarebbe stata possibile. Ma forse, in quest'ottica, la grandezza di Jobs è stata anche quella di cavalcare le differenze e le lacune degli altri per fare del suo prodotto un qualcosa di diverso ed in un certo qual senso unico.

Adesso che se ne è andato la sua eredità è un fardello pesante per la Apple, che presto o tardi dovrà fare i conti con il suo fantasma. Lui ormai è un mito! La rete lo ha già consacrato oggi con uno stillicidio di tag, post, tweet... 

Addio Steve.

Tags: , ,

General

L'ultima stagione?

by beren 15. settembre 2011 20.39

Mi sono chiesto negli ultimi anni diverse volte quando sarebbe giunta l'ultima stagione cestistica della mia vita. Questa sembra decisamente assumerne i connotati. In primis l'infortunio al polso patito l'anno passato proprio in occasione dell'ultima gara dei playout si è rivelato doloroso e soprattutto difficile da riassorbire: in pratica mi trovo con un legamento della mano rotto o cmq fortemente lesionato (occorrerebbe una artroscopia per saperlo con certezza) e quindi a dover giocare con la mano destra in precarie condizioni di stabilità. La cosa è anche peggiore quando tiro visto che spezzare il polso fa parecchio male. Oltrettutto il nuovo corso del Borsano, dopo la partenza di coach Castiglioni, non sembra particolarmente convincente: la vecchia guardia è sempre più vecchia (sottoscritto compreso) e il folto plotone di giovani dell'anno passato oltre ad aver perso pezzi importanti quest'estate non sembra essere riuscito ad avere gli innesti giusti, almeno finora. Se poi a questo, si somma un buon innalzamento medio del livello delle contendenti del torneo di promozione, questo potrebbe rivelarsi davvero una stagione ancor più dura delle più pessime previsioni.

Ovviamente i verdetti verranno dal campo, ma per quelli c'è ancora un mesetto di tempo. In tanto questa sera si comincia con la prima vera uscita stagionale in quel di Fagnano, in un torneo che certamente si presenta come abbastanza fuori dalle nostre possibilità vista il cantiere ancora aperto. Non resta dunque che iniziare questa 18ma stagione senior di fila, sempre che il polso tanto maledetto non decida di mettere una parola fine al film ancor prima di quanto il regista stesso avesse potuto immagginare.

Tags: , ,

Pallacanestro

A Silvia

by beren 26. agosto 2011 19.07

Dove sei finita?
Assorbita da grandi progetti
da santi propositi
da ambizioni fameliche.

Perchè ti inganni e mi mortifichi?
Perchè sacrifichi il tuo essere su altari pagani?
Solo ciò che non esiste non è davvero mai esistito
tutto il resto è solo coperto
pronto a tornare alla luce
al momento sbagliato.

Non c'è equilibrio che possa essere,
sacrificandone altri:
è artifizio, è finzione, è un trucco!

Il fucile della memoria
ti inchioderà per sempre nella trincea
che ti protegge contro tutto
tranne che te stessa.

Impotente, aspetto.
La tua unica certezza è nella mia silenziosa presenza.

Tags: ,

Poesia

Dynamic Data Entry - Un datepicker per le date

by beren 2. agosto 2011 19.43

Sappiamo tutti che uno dei formati di dato più pericolosi in assoluto è la data. Fondamentalmente perchè ognuno la scrive un pò come gli pare e piace con il problema che poi quando si va a scriverla sul DB ci possono essere spiacevoli sorprese. Nell'ambito dei Dynamic Data Entry di cui da un pò di post mi occupo per la notevole versatilità che hanno l'idea che più di tutte si è fatta largo nel mio ideale di applicazione è quella di consentirne l'inserimento e la modifica attraverso un datepicker. Dato che molti però, come il sottoscritto ;), non masticano molto JQuery magari ripiegare su una soluzione più semplice può essere di utilità ed in questo ci viene in aiuto l'Ajax Control Toolkit che potete scaricare gratuitamente qui.
Questo fantastico set di controlli oob Ajax contiene un buon Calenda Extender che fa al caso nostro. Scaricata infatti la dll ed inclusa come referenza del progetto potremo infatti usufruire di tale funzionalità.

Per implementare tale modifica dovremo dunque aprire la lista dei controlli ed, una volta individuato il controllo generico di Edit delle date aprirlo nell'editor.

Nella toolbox a sinistra selezionate il Calendar Extender e trascinatelo nel controllo a destra. Se nella toolbox a sinistra non doveste trovare il controllo significa che dovete semplicemente aggiungere la dll cliccando con in destro sulla toolbox quindi premendo "Choose items" ed infine nella finestra che si aprirà browsandola.

Una volta che avete trascinato l'extender all'interno del controllo, il gioco è praticamente fatto. Basterà infatti modificare le sue proprietà per ottenere l'effetto voluto:

  • TargetControlID: è l'ID del controllo che conterrà poi effettivamente la data che nel nostro caso è la textbox preesistente. In pratica con questa proprietà l'extender sa su quale controllo deve visualizzare il datepicker. Questa proprietà deve essere valorizzata altrimenti il datepicker non funzionerà.
  • Format: questa indica semplicemente il formato in cui verrà tradotta la data scelta nel date picker ed inserita nel controllo. Nel nostro caso nel classico formato che si usa in Italia.

Una volta concluso questo il gioco è fatto senza JQuery e con un effort ridicolo.

 

Tags: , , , ,

Developer Cheat

Dynamic Data Entity - Gridview Pager

by beren 30. luglio 2011 21.00

Una delle cose più scomode che mi è capitato di utilizzare con i Dynamic Data è il paginatore out of the box. O meglio, diciamo che la configurazione di default mi risultava davvero parecchio scomoda: avere il numero di righe di default visualizzate a 10. Troppo poche, specie se si ha uno schermo ad alta definizione e degli occhi buoni, si rischia di avere perennemente mezza pagina vuota.

Come fare allora? Mi metto a spulciare un pò il codice e mi accorgo che il tutto è assai più semplice di quanto si possa pensare. Infatti la modifica/personalizzazione interessa solamente 2 files:

  • GridViewPager.ascx è il controllo ascx che contiene la dropdown con i valori selezionabili di righe
  • List.aspx è il template di pagina di default che utilizza la gridview che viene visualizzata nelle pagine

La prima modifica in GridViewPager.ascx è opzionale nel senso che si possono cambiare i valori nella dropdown, aggiungerne di nuovi o toglierne a piacere. Il consiglio è quello di lasciare sempre il valore 10 che corrisponde al default della griglia come vedremo tra un pò. Ma in generale anche qui la libertà è massima.

Nel mio caso rimuoverò i valori 5 e 15 ed aggiungerò il 50, ma voi potete ovviamente fare come vi aggrada.
Fatto questo procediamo però con la modifica più importante cioè: dove cambiare il valore di default da quello scomodo 10 al più comodo 20? Semplicissimo: aprite il template di pagina List.aspx individuate il tag del GridView e tra gli attributi metteteci un bel PageSize=20. In questo modo:

Fatto questo con un seplice reload della pagina avrete personalizzato con facilità il numero di righe visualizzate nel paginatore della griglia. Ecco il risultato:

Tags: , , ,

Developer Cheat

ASP.NET Ajax client-side framework failed to load

by beren 16. luglio 2011 15.03

Qualche giorno fa mi ero trovato a dover riconfigurare su una macchina nuova un'applicazione ASP.NET 4.0 che avevo inizialmente sviluppato su di un'altra. In pratica sulla vecchia macchina tutto funzionava a dovere, invece sulla nuova mi ritrovavo ad avere sempre in caricamento l'errore "ASP.NET Ajax client-side framework failed to load". In effetti tutto ciò che era Ajax nell'applicazione non funzionava più. Ho fatto così una serie di ricerche sul web ed ho trovato gli errori più assortiti e fantasiosi: da un problema al web.config, ad inserire codice custom nel routing dell'applicazione (è un app MVC) e infine modificare mille settaggi diversi in IIS. Tutto senza alcun esito.

Finalmente questa mattina mi imbatto in questo post che mi ha risolto tutti i problemi. In effetti come suggerisce il tipo, ho guardato sotto il site di IIS in cui gira l'applicazione e nella sezione Handler Mapping ho verificato che c'erano pochissime voci e nessuna su ASP.NET 4.0, di conseguenza ho fatto come consigliava lui cioè ho fatto un rerun del comando aspnet_regiis nella directory del Framework 4.0 (perchè a me lo dava con le applicazioni 4.0)

Una volta eseguita questa operazione magicamente negli Handler Mapping mi sono ritrovato tutte le voci mancanti (specie quelle su ASP.NET 4.0) e soprattutto l'errore ed i problemi ad esso correlati erano svaniti.

Tags: , , ,

Developer Cheat

Smarrimento

by beren 6. luglio 2011 00.56

Sei svanita
nel buio da cui sei venuta.
Hai lasciato poche tracce
e comunque sei stata brava a cancellarle,
Non mi so spiegare perchè
ancora una parte di me ti cerchi
in sogni malati
in cui persino una chat sembra la porta del paradiso.

Il senso di vuoto
nel petto
confonde il ricordo nel mito
ma senza spazio per la disperazione.

La memoria è il luogo del passato
dove prende vita il presente
e spesso, purtroppo anche il futuro.
Potrai cancellare la tua ma non certo la mia,
puoi solo annebbiarla, senza trarne guadagno alcuno
fuorchè il tuo stesso disprezzo.
Vorrei che potessi ascoltare questo grido,
perchè è la tua voce quella che sto usando.
E' la tua immagine ciò che ho nel cuore.

Forse le tante domande sospese hanno
una sola risposta con i piedi per terra,
ma sognare non costa niente quando
quando nulla hai da perdere perchè hai già perso tutto.

Rimango così afono e senza colore
nel quadro che il destino sta dipingendomi addosso
colmo solo di nulla e vuoto di te.

Ma il mio bisogno di te
è da te lontano
più di quanto il tuo cuore lo sia dalla tua mente
e dai tuoi piedi.
Niente può salvare dal tuo baratro i miei pensieri stanotte.
Nemmeno tu.

Tags:

Poesia

Growin On Me

by beren 3. luglio 2011 17.48

I can't get rid of you
I don't know what to do
I don't even know who is growing on who
'Cos everywhere I go you're there
Can't get you out of my hair
Can't pretend that I don't care - it's not fair

I'm being punished for all my offences
I wanna touch you but I'm afraid of the consequences
I wanna banish you from whence you came
But you're part of me now
And I've only got myself to blame

You're really growing on me
(Or am I growing on you?)
You're really growing on me
(Or am I growing on you?)
Any fool can see

Sleeping in an empty bed
Can't get you off my head
I won't have a life until you're dead
Yes, you heard what I said

I wanna shake you off but you just won't go
And you're all over me but I don't want anyone to know
That you're attached to me, that's how you've grown
Won't you leave me, leave me alone

You're really growing on me
(Or am I growing on you?)
You're really growing on me
(Or am I growing on you?)
Any fool can see

You're really growing on me
(Or am I growing on you?)
You're really growing on me
(Or am I growing on you?)

Tags:

Musica