marzo 2007 Blog Posts
Stavo leggendo questo interessante post su Coding Horror riguardo le 6 migliori "Top Ten della programmazione"....
Qual'è secondo voi la voce piu importante tra tutte queste? Io punto su You are not your code:
My ego is not tied to my "perfect" or "imperfect" work product. My ego is only tied to my attempts to do the best job I know how, and to learn from my mistakes, not the initial result of my work.
Secondo me questo è _sacro_, troppo spesso vedo sviluppatori tanto attaccati al proprio codice da non riuscire non solo a fare un banale refactoring, ma neanche ad...
Ecco il seguito della prima parte, in cui svelo effettivamente l'implementazione :)
Come discusso nei commenti con Adrian, ho preferito ereditare la DataGrid (si, era un progetto 1.1) e implementare nell'override del metodo Render un modo per levare spazi e caratteri non voluti, piuttosto che scrivere un HttpModule che facesse lo sporco lavoro, perchè:
1: Questa cosa mi interessava solo in certi punti con veramente tanti movimenti. In altri, preferisco comunque avere un output Html "leggibile"2: Comunque, il benefit di eliminare gli a-capo nelle altre parti non era preponderante (ballavano 50/100k massimo)3: Piu importante: molti script JavaScript di terze parti smettono di funzionare...
Come si dice, man mano che si fa una cosa, si impara a migliorarla...
Ho iniziato da poco l'avventura del Daily Issue ma già mi accorgo che la sera non è il momento migliore per scriverlo. Può succedere (come oggi) che il lavoro mi trascini fino a tardi, perchè uscito dal cliente devo fare delle cose per un altro cliente, e senza che te ne accorgi si fanno le 9.. .ma tu avevi un appuntamento alle 9 e 45 e devi ancora andare a casa a farti la doccia...
Insomma, la sera si è spesso troppo di fretta, oppure (come ieri)...
Beh che dire... è bello il reale utilizzo pratico... tipo il sapientino... impara divertendoti ;)
http://weblogs.asp.net/fmarguerie/archive/2007/03/28/using-linq-to-solve-puzzles.aspx
Il cliente ha sempre ragione...
Anche quando vuole visualizzare 10.000 righe di dati senza paginazione... e poi si lamenta che il browser si incarta....
Questi ed altri problemi ci possono far girare le scatole.. perchè far sottostare l'applicativo a delle logiche palesemente "sbagliate" è molto poco agile... e molto poco intelligente ( IM(very)HO, se devi fare inquiry su 10.000 movimenti, usi i reporting services... se devi fare operatività su 10.000 movimenti.. metti un pulsante massivo, e fai vedere il dettaglio solo se _veramente_ ti serve, perchè non ci credo che tu nella maggior parte dei casi ti andrai a passare tutti i 10.000...
Volevo scrivere un mio post sul perchè le classi statiche sono spesso piu una fatica che un guadagno, ma non riesce a venirmi fuori come vorrei... quindi beh, mi appoggio a chi è più autorevole di me ... :)
http://www.thoughtshapes.com/Blog/?p=13
Edit: mi hanno fatto notare che "post apposta" fa schifo... lo cambio ;)
Sono in ritardo, sono in ritardo, sono sempre in ritardo....Tutti o quasi i gruppi di lavoro delle società con cui sto collaborando in questo periodo hanno sempre lo stesso cronico problema... ed anche io l'ho avuto certe volte....
.... e mi chiedo, ma il ritardo c'è veramente, o ce lo creiamo noi? O ce lo crea il "management"? Oppure tutte e due le cose, gli screzi col management sono tali che "esso" (non so se personificarlo o meno) ci impone dei tempi impossibili e noi, per tutta ripicca, non evidenziamo che sono impossibili e ce la prendiamo ancora piu comoda, forti del fatto...
Molto spesso in ASP.NET capita di dover simulare il click di un Button/LinkButton/ImageButton/Etc per tutta una serie di motivi.
Troppo spesso, negli esempi che vedo su internet vedo che si scrive a manina un richiamo alla funzione __doPostBack (JavaScript) forzando l'id del controllo e gli eventuali argomenti.
Questa cosa non mi piace per nulla ed oltretutto è passibile di errori: qualsiasi service pack del framework _potrebbe_ cambiare il metodo e quindi vanificare i nostri progetti. Per avere sempre la referenza corretta, consiglio di utilizzare GetPostBackClientEvent, che viene esposto dalla classe Page, ed accetta un oggetto di tipo Control (quindi il Button, LinkButton, ImageButton...
Ho sempre avuto problemi di "costanza".... nel senso che in tutto ciò che non sia lavoro, dopo un pò mi faccio prendere (dal lavoro appunto :( ) e metto da parte il resto... questo vale tendenzialmente per tutto tranne che per i miei esercizi (che faccio di prima mattina) e per la mia vita sociale post-lavoro (che parte da quando finisco, di solito non prima delle 8/9, e va ad oltranza ... ;) ) Purtroppo, ho questi problemi di costanza anche col Blog... ora è un buon periodo, e riesco a seguirlo, ho paura che, visti anche alcuni nuovi clienti che...
Molto spesso mi è capitato di forzare la dialog del "save as" per esempio con i PDF, per evitare che mi aprisse il reader embedded all'interno del browser. Volevo scrivere la mia soluzione, ma visto che è praticamente uguale a questa, vi posto direttamente il link :)
Link: Forcing an "Open, Save" dialog on know file types
Update: il link alla pagina diretta ogni tanto si incastra, credo che sia un problema di un plugin all'interno del sito...L'ho cambiato con il link al riassunto del giorno!
Segnalo dal blog di Scott Water(etc) una serie di tips sull'utilizzo di ASP.NET con problematiche quali caching, web.config, stato e altro...
http://scottwater.com/blog/archive/tags/asp.net+tips/
Non è molto recente, ma se non l'avete fatto sempre meglio dargli una letta: io ho scoperto un paio di cavolate cui proprio non pensavo :)
Ieri sera stavamo facendo dei test e mi sono imbattuto in un simpatico errore
"Unable to cast object of type 'System.String' to type 'System.Web.HttpCookie'"
L'errore era dato su una riga che per me era assolutamente innocua:
foreach (HttpCookie cookie in cookies)
(dove "cookies" è di tipo HttpCookieCollection).
Preso dallo sconforto, ho iniziato a guardare in giro, mi sono ricordato che l'implementazione del foreach non è una scienza esatta e mi sono lanciato su un for:
for (int i=0; i<=cookies.Count;i++){ HttpCookie cookie = cookies[i]; ......
Ed ovviamente tutto funzionava.....
Testa che ti ritesta (e che ti rigira) viene fuori che HttpCookieCollection nel foreach restituisce un'array ... di stringhe!...
Eh si, capita ancora... siamo nel 2007, esiste IDisposable, esiste il Finally... eppure ci sono ancora problemi di Leaked Connection... soprattutto in 2003... caso vuole che in questi ultimi due giorni ne abbia avuti due, quindi posto qui un interessante articolo vecchio e stravecchio (sempre il caso vuole che un post sul NG mi riportasse a leggerlo proprio oggi, dopo anni che non lo vedevo :)) che spiega un pò le varie possibilità di connection leak... e soprattutto i vari casi in cui può succedere NON per problemi di close ....
Qui il link:http://blogs.msdn.com/angelsb/archive/2004/08/25/220333.aspx
Beh... Se qualcuno ha problemi di Memory...
Ok, per rispondere alla saga di Mrkino riguardo la sua casa, finalmente posso svelare dove sono sparito da gennaio fino ad oggi: a costriuirmi il controsoffitto!!!! :)Si lo so me lo sarei potuto far fare da qualcuno spendendo qualche migliaio di euro, ma vuoi mettere la soddisfazione di farlo da solo? :P
Questa lunga saga è partita il 7 gennaio, data della prima foto, e si è conclusa ieri con l'ultimo capitolo, ossia la pittura. Per scaramanzia, non ho postato le varie fasi sul blog, ma ho tenuto un reportage fotografico che ho messo in un'apposita gallery.Le gallery sono strutturate un pò...
Vedo che ci sono ancora molti dei miei contatti che non lo fanno...Io lo posto qui, nella speranza di vederne sempre di piu :)
http://im.live.com/Messenger/IM/Home/
Segnalo un ottimo pattern (behavioural??) che ho avuto modo di apprezzare a cena con Daniele, Ricky, Andrea, Raf, Massimiliano e Ugo.... Vi rimando direttamente al blog di quest'ultimo per l'implementazione :)http://blogs.aspitalia.com/imperugo/post1938/Inculetor-Pattern.aspx
... Spero che a Seattle lo stiano utilizzando a profusione :P
Mi è capitato per differenti motivi di avere dei rapporti di amore/odio con il DOM, in quanto la documentazione non sempre è completa e a volte frammentaria, soprattutto quando devo tramite javascript andare a scavare negli oggetti complessi come può essere una datagrid.
Ho trovato questa funzioncina che, passato un oggetto, permette di stamparne in una nuova finestra tutte le proprietà e gli eventuali oggetti figli. In questo modo, quando sono di fretta, posso avere sotto mano le possibilità dell'oggetto che mi interessa e man mano navigarne i figli fino ad arrivare a quello che mi serve. Lo so, molto "sbaglia...
Pur non avendo partecipato molto al blog in questi ultimi mesi, ho sempre letto il muro (alla faccia delle critiche :P) e ho visto un sacco di post che parlano dei problemi delle poste italiane.... Oggi, ho avuto un bello scontro con le poste del mio ex-paese (Bollate), che sfocia nel ridicolo: ho presentato domanda per il servizio Seguimi, che praticamente ti permette di girare la posta ad un nuovo indirizzo nel caso di trasferimenti o spostamenti. Ho compilato un bel modulo fatto apposta (di quelli che si vede lontano un chilometro che sono stampati per essere dati in pasto...
Ebbene si, dopo eoni torno a scrivere! Giusto per dire che oggi se tutto va bene dovrebbe concludersi la serie di lavori pesanti nella mia nuova casina (sic...) e che quindi spero di riuscire da oggi ad organizzarla per bene... tipo mettere il parquet ed un letto serio :P Un saluto a tutti... e vista l'aria che tira ultimamente... beh, scusate l'OT ... :P