Other .NET
Tutto ciò che è relativo a .NET, ma non rientra esattamente nelle altre categorie...
In realtà, sono usciti il 19 di Gennaio… ma io sono _sempre_ in ritardo, e me li sono installati solo ora.
Risultato:spettacolo! Io ho un Macbook pro 2009 @ 2.8ghz e finalmente il mio Seven ha
- Smesso di pensare che il digital audio fosse sempre attivo, sparando fuori la luce rossa a-la Terminator dall’audio in;
- Risolto i problemi audio che avevo coi vecchi driver, ed ha iniziato a vedermi il microfono anche fuori dal registratore di suoni di Windows, senza fare giri strani con driver di terze parti e modifiche degli ini (che tra parentesi...
Questo periodo è a dir poco frenetico, tanti progetti che devono essere chiusi prima dell'estate, clienti ansiosni per il caldo, PC che rallentano, progetti personali che slittano, email che si affollano senza risposta.... malgrado questo, ho avuto pochi minuti fa la gioia di vedermi riconfermato l'MVP Award! Che dire, un grazie sincero ad Ale (si si, me la ricordo la survey :P), a Microsoft che continua a credere in me, ed a tutti i miei compagni MVP! :)
Il periodo pieno non accenna a smettere.. da un certo punto di vista mi va benone, dall'altro dormo troppo poco :)
In questi giorni, comunque, sto notando che manca proprio un'infarinatura su molte tematiche di base... uno dei piu gravi purtroppo è quello delle Performance.. ValueTypes, ReferenceTypes, boxing e unboxing, eccezioni... tutte cose di cui magari si parla ma di cui si ignorano gli impatti (Anche importanti, la maggior parte delle volte) in termini di velocità di esecuzione....
Una buona introduzione potrebbe essere questo articolo su msdn, un pò vecchiotto ma ancora attuale... sarebbe il caso di darci un'occhiata giusto per vedere...
Mi capita troppo spesso (sempre??) di avere a che fare con Warning presi sottogamba....
Il classico è il try/catch in cui si fa il catch dell'eccezione, ma poi non la si usa...
Questo vuol dire
1: non si conosce che il costrutto "catch" è ammesso anche se non si specifica l'eccezione, nel caso io voglia fare qualcosa senza interagire con l'eccezione stessa
2: si sta facendo debug spinto e "mi serve l'ex per capire cosa succede altrimenti non capisco"...
Ok.. perfetto.. una volta, due volte.. la terza ci attacchi un log4net.....
I warning sono l'anticamera di un problema. Si chiamano warning per un motivo, mica hanno...
... sono la base dello sviluppo...
Sono forse una delle cose piu importanti che voi possiate adoperare...
No, sul serio, non è uno scherzo.... non riesco a pensare a niente di piu serio di una corretta nomenclatura... tutto ciò di buono che possiamo fare o saper fare diventa inutilizzabile se non sappiamo dargli il giusto nome, corretto nel giusto contesto, e se non abbiamo il coraggio di cambiarlo (refactoring anyone?) nel caso diventi osboleto o scorretto.
Classi, variabili, metodi, proprietà, tutto il "mondo" dello sviluppo si disloca intorno a questo.. .eppure siamo nel 2007, molto è passato dai tempi della "niu economi"...
Lo vedo capitare sempre, ogni giorno, in tutto quello che faccio.
Gente che pur di fare un passaggio in produzione al millimetro lo fa alle 8 di sera di venerdi, e nel week end puntualmente si inchioda tutto, gente che se ne va a casa lasciando modifiche nel codice non testate senza nemmeno preoccuparsi del fatto che dovrà essere rilasciato tutto l'indomani, gente che dichiara chiuso un progetto perchè "funziona" e poi scatta alla macchinetta del caffè... ma non funziona, e non funzionerà mai ....
Capisco perfettamente la voglia di fare altro, di svago, di essere in altri posti soprattutto quando è...
Daily? Ma che daily... monthly... Yearly... insomma, è sempre lo stesso issue che si ripropone....
Partiamo dalla citazione che ha dato inizio al tutto:
"Supponiamo di aver addestrato un milione di scimmie a battere a caso sui tasti di una macchina da scrivere e che lavorino con ardore dieci ore al giorno con un milione di macchine da scrivere di tipi diversi. Che i sorveglianti illetterati raccolgano i fogli anneriti e li rileghino in volumi. Nel giro di un anno questi volumi conterranno la copia esatta dei libri di ogni genere e di ogni lingua conservati nelle biblioteche piu' ricche del mondo."
Emile...
Ok magari è un "mezzo" Daily Issue... però in relazione al mio post di ieri ed alla relativa osservazione di Massimo, ho ricevuto un pò di domande del tipo "ma che vuol dire inlining del JIT??"...
Effettivamente posso capire che non sia un concetto con cui si ha a che fare tutti i giorni, a meno di non chiamarsi Adrian :P..... quindi, piuttosto che spiegarlo io che potrei fare un bel po di confusione, vi rimando a questo post di Gunnerson che spiega in breve cos'è, a cosa serve e come funziona (piu o meno :))
Uno Issue un pò frettoloso, che oggi forse riesco ad uscire prima delle 9 di sera :)
Mi è capitato di configurare Log4Net in un ambiente che aveva già un logger (che però non funzionava :)) e per evitare di modificare tutte le pagine, ho tenuto la struttura e la severity del Logger esistente levando tutta la logica e chiamando log4Net.
Ho avuto il problema che tutti gli errori mi venivano ovviamente segnalati come partiti dal logger... .(
Un paio di ricerche sull'utilizzo di StackTrace ed ho trovato il metodo perfetto:
Type type = new StackTrace().GetFrame(1).GetMethod().DeclaringType;
Quindi passerò al GetLogger di log4net questo tipo!
Attenzione:...
Oggi niente Daily Issue: ho una laurea tra poco (non la mia, tranquilli, non è successo niente di irreparabile :P ) e sono incasinato in altre faccende ....
Però, il mio classico giro mattutino me lo faccio, e tra i tanti blog che visito ce n'è uno veramente carino, http://worsethanfailure.com/ (per chi naviga da un pò, mi pare che prima fosse il Daily What The Fuck, poi rinominato). Praticamente, una raccolta di stupidate relative al mondo informatico, non solo dal punto di vista dello sviluppo.
Bellissimo il post di ieri: http://worsethanfailure.com/Articles/Which-Cable.aspx
:)
http://www.theserverside.net/tt/cartoons/VSPriceless/VSPriceless_archive.html
:)
Apprendo oggi che è uscita la versione 3.1! Potete scaricarla qui.
La cosa sensazionale è vedere le statistiche:
Hm, only 4,436 lines of code for Rhino Mocks? I had met ASPX pages that had more code in them :-)
... è proprio vero!! Capita anche a me di vedere pagine ASPX con piu di 4000 righe di codice... tutte nel code-behind.... sigh
Ahahaha non l'avevo mai sentito, giuro! L'ho letto oggi come alternativa per definire qualcosa di disastroso:
The reporting system had a total of 192 forms, 87 modules, and 21 class modules. And hundreds of compiler errors. I believe the appropriate adjective here is "Hindenburgesque."
Che dire.. stupendo!Qui il link al post originale!
Like any skill, programming is something that gets better with a solid foundation that is continually built upon. Most of us got into software for the fun of problem solving. Once we lose the “fun”, that is when most of us settle into ruts that can be hard to get out of.
E si sa che l'ultimo punto è sempre il più importante.. lo dice anche lui :P
http://codebetter.com/blogs/jean-paul_boodhoo/archive/2007/04/05/Build-A-Solid-Core.aspx
Stavo leggendo un post che sottolineava l'importanza di licenziare qualsiasi software venga reso pubblico per evitare problemi a posteriori a chi voglia farne uso....
Sono abbastanza d'accordo con quanto scritto, soprattutto mi ha stupito la WTFPL: Do What The Fuck You Want To Public License...Che dire... particolare, ma credo che potrei adottarla :)
http://weblogs.asp.net/bsimser/archive/2007/04/03/scrum-room-fun-room.aspx
.... spettacolo... sogno il giorno in cui potrò avere anche io un posto simile :)
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...
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
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 ;)
Ok, con ieri si è concluso il rilascio completo (quello che è definito come "Release 1".. .vedremo se sarà poi presente un'eventuale Release 2....) del famoso programma di tesoreria su cui sto lavorando da ormai due anni. E ancora una volta, devo inginocchiarmi e ringraziare .NET per aver fatto diventare il deploy delle applicazioni un gioco da ragazzi: pur senza pacchetto di installazione, è bastato copiare i siti, modificare i web.config (niente addin, la configurazione la vuole fare il lreparto IT .. così si sente partecipe... :)), pestare sulla tastiera un paio di InstallUtil, smanettare un pò con la GAC ed il...
No, non centra Sophie Marceau!! Non capita anche a voi di avere dei periodi nella vostra vita di sviluppatore in cui vi fissate su qualcosa??A me capita sempre, ci sono periodi in cui mi capita di ritrovarmi a fare una cosa sempre e comunque, dovunque, a volte anche quando non è necessaria, per fortuna praticamente mai quando è dannosa. Ho avuto per esempio il mio periodo Factory, in cui tutto era una factory, anche dove magari era inutile. Ho avuto il mio compianto periodo Singleton, stenderò un velo pietoso sul mio periodo XML....Ora ho il periodo Collection, farei ereditare tutto...
Considerazione 1: Non puoi fare tutto.
Non so se a voi capita, ma quando mi trovo a gestire piu di quattro progetti su due gruppi di lavoro differenti, non riesco a seguire anche il resto. Questo vuol dire meno vita sociale e meno vita telematica, e come al solito finiscono tagliati fuori Newsgroup e Blog. Mi scuso con chiunque senza la mia mancanza sui NG (ahahaha.. hem.. :P), non mi scuso col Blog perchè se non scrivo è solo meglio...
Considerazione 2, banale: Ma quanto cambiano i punti di vista?
No dico, vi è mai capitato di essere in chiusura di progetto,...
In questi giorni sto tenendo un corso su VB6. No, _non_ chiedetemi perchè mai all'alba del 2006 sono stato convinto a parlare a qualcuno di VB6 (in fondo in fondo sono un debole)... Potrete comunque facilmente immaginare il mio atteggiamento di strafottenza, non mi sono praticamente preparato niente dicendo "ma si, VB6, che vuoi che sia"... e mi sono presentato al corso fresco come una rosa, per poi capire dopo mezz'ora che in realtà non mi ricordavo _nulla_ delle metodologie di sviluppo in VB6. Per fortuna sono riuscito ad esulare bene ed a tirare fuori supercazzole che, a detta degli...
Come ho scritto in questo post di stamattina, ho avuto qualche problema nell'installazione del communityServer. Il problema che manifestavo era che non riuscivo a fare in modo di avere un sito del tipo www.miosito.com in quanto il www veniva irrimediabilmente tolto per lasciare solo miosito.com, che ovviamente mi prendeva a pernacchie nella migliore delle ipotesi, nella peggiore invece si collegava al server di posta :)
Tralasciando, la _prima_ cosa che ho fatto è stato dire "ma dai, furbo lo scott, avrà messo qualcosa nel web.config per levarlo così è piu elegante" e mi sono lanciato in una ricerca nei file di configurazione...
Ho installato la beta2 di communityserver... ho alcune applicazioni che sfruttano .Text e mi sono detto che è una rottura di scatole venire a patti col codice "maccaronico" di quell'aggeggio, e visto che olltretutto andrebbero ampliate sto provando la migrazione direttamente su CommunityServer.
Qualcuno ha avuto esperienze? Per ora sta andando tutto bene, non è una scheggia (è un pò lentino, a dirla tutta..) ma sembra solido anche se con la 2.0 non si può vedere il codice sorgente (bisogna tirare fuori i cash... deciderò poi se è il caso di farlo).
Mi sono solo scontrato con un problem (abbastanza) grave: qualsiasi cosa io faccia,...
Stavo paciugando con il LoadTemplate per caricare dei template dinamici all'interno di TemplateColumn create dinamicamente, e mi sono trovato di fronte al problema di dover prendere l'istanza di un oggetto (checkbox, textbox) definito nel template per variarne il valore.Sembrava tutto facile, ma mi sono dimenticato che il mero FindControl() non funziona perchè, per ogni templatecolumn caricata in questo modo, viene creata una tableCell contenente un oggetto di tipo ASP_NomeFileTemplate_Ascx con all'interno le istanze degli eventuali controlli. Per avere l'istanza della textbox posso risolvere in due modi: ho controllo che il tipo corrisponda con quello sopra definito, e dopo chiamo unfindcontrol per...
Non mi fido mai molto dei benchmark che trovo in giro, quindi ho voluto fare una prova su un database effettivo (assicurazioni) con dati veri (piu di 200 mila utenti.. hey, ma questo lo conosco.. hem :P) per vedere la vera differenza tra l'utilizzo di SQLClient, OLEDB e ODBC... che dire, è stata una sorpresa: OleDb è più veloce di quanto credessi, mentre Odbc è _molto_ più lento di quello che immaginassi... questo è quello che è venuto fuori in fase di ricerca:
Ora il problema è: sarà per loro un vantaggio di 3 secondi abbastanza per convincerli a passare...