di .NET e di altre amenità

Sui pericoli nascosti degli iterators

Ormai anche i sassi sanno che una delle importanti feature che sono introdotte dal framework .NET 2.0 sono gli Iterators. GLi iterators sono in soldoni un modo alternativo agli enumeratori per iterare, appunto, all'interno di collections, o più genericamente di insiemi. Ma la potenza che viene messa in campo dagli Iterators è talmente elevata, che già da un po' si possono trovare nella rete degli esempi molto belli nei quali essi sono usati anche in modi un po' più creativo, ad esempio come generatori di numeri primi, oppure come iteratori del filesystem.

Questo ultimo caso, che si potrebbe riassumere nel traversare ricorsivamente un albero, in realtà rivela dei problemi che se trascurati potrebbero avere un impatto enorme sulle performance del codice, ma soprattutto sull'utilizzo delle risorse da parte di quest'ultimo. Infatti, come ogni algoritmo ricorsivo, anche quello che viene generato con gli Iterators ha la tendenza ad impegnare una grande quantità di memoria, e quindi merita di essere usato solo per ricorsioni poco profonde. In particolare, l'uso ricorsivo degli iterators ha la caratteristica di generare un enorme lavoro per il Garbage Collector.

Invece che portare un esempio di quanto sto dicendo, propongo la lettura attenta di questo post, che da una dimostrazione molto efficace del problema, ma che inoltre si preoccupa di dare una altrettanto efficace indicazione di come affrontare questo genere di algoritmi, rimanendo sempre nell'ambito degli Iterators.

L'esempio finale di elaborazione mediante Iterators del problema delle Torri di Hanoi, è in grado grazie ad un accorto uso di uno stack, di portare il tempo di esecuzione dai 20 secondi dell'algoritmo ricorsivo a meno di 1 secondo. Vale la pena di investire un po' di tempo nel leggerlo.

VB Features in whidbey beta 2

In questo post del team Visual Basic, si descivono alcune nuove feature che saranno disponibili dalla beta 2 di VB.NET 2005. In particolare il supporto a ClickOnce sarà esteso anche alle versioni express e i code-snippets saranno migliorati (i dettagli nel post). Quello che mi suona strano è quello che si legge fra le righe, in particolare in questa frase:

"One thing you should know—the changes that I’m describing here were made after beta 1, so the first “big” release that you’ll see them in is the Visual Studio beta 2 release, some time early next year. They’ll also show up in a Community Tech Preview release sometime later this year"

In sostanza, da questo brano si evince che la prossima beta 2 di whidbey uscirà nella prima parte del prossimo anno, mentre mi pareva di aver letto che si sarebbe visto qualcosa già a Novembre. Si tratta di un ritardo?

Infine, nell'ultima parte del post si fa cenno alle feature di refactoring che sono state introdotte, ma pare che l'unica cosa disponibile sarà il "rename symbol" refactoring. Un po' poco mi sembra.

How A Criminal Might Infiltrate Your Network

Un eccellente articolo su come sia possibile per un hacker impadronirsi di una rete.

http://www.microsoft.com/technet/technetmag/issues/2005/01/AnatomyofaHack/default.aspx

MSN Search ci riprova

Con il seguente testo si ripresenta il Google di Microsoft

What do we have under the hood? Our new algorithmic search engine with a few more features and a bigger index than last time you visited this site. We used your comments to make it better so give it a spin and tell us what you think now.

Direi non male. Ecco cosa viene fuori cercando "Andrea Boschin"

Windows 3.11

Ecco qualcuno che continua a divertirsi con il Virtual PC

http://blogs.msdn.com/Virtual_PC_Guy/archive/2004/10/26/247793.aspx

Una splendida scena

Sono in salotto, che lavoro al pc e nel frattempo sullo schermo del televisore scorrono le scene di "Paura d'Amare", il film con Al Pacino e Michelle Pfeiffer. Una pellicola forse un po' mielosa, che sviluppa la sua trama su lui (Al Pacino) un ex galeotto che ha cambiato vita che gira attorno lei (Michelle Pfeiffer) fino a che la convince ad uscire e trova la sua conclusione nel motto "per sempree malgrado tutto".

Non è esattamente quello che direi un film che ti cambia la vita, se mai un film potrà cambiarla, ma di certo una storia ben narrata ed interpretata da degli attori che dimostrano tuta la loro bravura. Però in questo film c'è una scena che ho apprezzato molto.

Si ambienta nella notte Newyorchese, quando lui è finalmente riuscito a portar fuori la sua bella, e infine dopo una serata ben riuscita, nei paraggi del retrobottega di un fiorista, si guardano negli occhi. Lui con il classico modo di fare alla Al Pacino cerca di avvicinarsi, le parla fitto fitto, il campo si stringe in un mezzobusto e lei pian piano cede. E scatta il bacio. Proprio li, quando avviene il contatto tra le labbra, sul retro si spalanca il container di un autotreno e i due sono avvolti da un tripudio di colori e di fiori.

Ecco, quello che mi piace, non è la scena in se, ma l'idea del registra che rivela una progettazione degli eventi alla ricerca di un'emozione. Il grigiore e la monotonia di una città come New York, che improvvisamente si trasformano in una armonia di colori, proprio per effetto stesso del bacio, e non per pura coincidenza. E' quasi un messaggio subliminale. Mi immagino lo spettatore, che viene condotto tra una serie di emozioni, lo sconforto, la complicità e la delusione, la speranza e l'attesa e infine, proprio nel momento cruciale, un'esplosione di gioia ed eccolo che sorride compiaciuto, sul divano. Come può non avere successo una pellicola come questa.

Dei commenti da leggere...

Andatevi a leggere cosa è accaduto su questo post di Matteo Flora... C'è da sbellicarsi dalle risate...

Blogger API mistery

Sto cercando un po' di materiale riguardo le API di blogger, il noto servizio di Google per i bloggers che vorrei integare in IMHO. Sono sinceramente stupito della scarsità di materiale chesi può trovare in rete. Da quello che leggo, esistono due versioni delle API, la 1.0, tuttora in stato di alpha, con una documentazione scarna ma abbastanza efficace, e la 2.0 il cui ultimo draft che sono riuscito a scovare risale al febbraio del 2003.

E qui comincia il mistero... Da svariati articoli che si trovano pare di capire che ci fosse la volontà di rilasciare questa versione delle API, addirittura si parla dell'abbandono di XML-RPC in favore di SOAP, ma a quanto pare è rimasto tutto sulla carta (oltretutto virtuale). Purtroppo le API 1.0 sono decisamente troppo limitate per essere usabili, talmente limitate che non supportano nemmeno l'invio del titolo del post, ma solo del content.

Chissa se c'è qualcuno che legge questi post che mi sa dare qualche indicazione.

Tristezze in rete

Oggi che è il mio compleanno, sto prendendo atto di una delle cose più tristi che abbia mai visto in rete. Mi riferisco alle decine di messaggi di auguri automatizzati che con la scusa di farmi gli auguri, provano a vendermi qualcosa... Vodafone in testa a tutti tanto per non fare nomi.

Così imparo a mettere sempre la mia data di nascita vera in ogni sito in cui io mi registri... Mi sa che d'ora in avanti bugmenot mi assisterà ovunque possibile.

Un bel regalo

Nel giorno del mio 36mo compleanno apprendo una gran bella notizia, che considero un bel regalo. Il presidente della commissione euopea Barroso ha deciso di ritirare la commissione che aveva proposto per presentare un'altra squadra alla quale si spera siano sottratti i commissari sgraditi al parlamento. In primis l'italiano Buttiglione che è il rappresentante di una politica fondamentalista cattolica che pur se legittima dal punto di vista strettamente personale, deve essere assolutamente tenuta lontana dalle istituzioni di Europee. Mi sembra decisamente una contraddizione, affidare un dicastero per i "diritti civili" ad una persona che per sua indole ha l'abitudine di negare diritti fondamentali della persona quali il divorzio, l'aborto, la clonazione terapeutica, l'eutanasia e quant'altro.

Quanto è successo è stato una buona cosa, anche se avrei preferito che fosse un voto del parlamento europeo a bocciare ufficialmente la commissione piuttosto che una indicazione sotterranea. Speriamo per il meglio durante il resto della legislatura.

Commenti e Refactoring

Da un po' di tempo ormai ritengo di aver individuato uno stretto legame tra le attività di refactoring e quelle di commento del codice. Non so se questa sia la scoperta dell'acqua calda, ma ritengo comunque che sia utile rendere pubbliche queste mie impressioni.

Tutti siamo coscenti dell'importanza di commentare il codice, e molti ormai sono anche coscenti che il refactoring è una attività indispensabile, sia che si adotti un approccio agile (o acrobatico talvolta... ma questa è un'altra storia) sia che si usi una metodica più tradizionale. Mi capita sempre più spesso, quando scrivo il codice ad adottare la seguente procedura:

1) dopo una fase di analisi-design comincio a scrivere il codice
2) mano a mano che scrivo ovviamente cerco per quanto possibile di tenerlo ordinato, ma comunque non faccio lo schizzinoso. Mi concentro molto più sul problema che sulla forma
3) al termine delle modifiche apportate testo faccio i consueti test
4) infine inizio a mettere i commenti. Prima quelli XML, metodi, campi, classi, etc.. poi al'interno dei metodi isolo i blocchi logici e ci metto dei commenti che mi servono soprattuto per ricordare i motivi per cui il codice è scritto cosi

In quest'ultima fase, mettere i commenti mi fa ragionare su quanto ho fatto e immancabilmente mi porta a una forte attività di refactoring dalla quale ne esce un buon codice, ben commentato e quasi sempre anche delle semplificazioni che prendono in causa buona parte del codice preesistente. E' spesso in questa sede che ne escono design pattern, classi di utilità e quant'altro. L'attività di commento mi permette di prendere coscienza delle caratteristiche del codice che è stato scritto rivelando quello che anche un design molto approfondito probabilmente non avrebbe portato alla luce.

Se prima consideravo importante commentare il codice, oggi ritengo questa attività addirittura vitale.

Blog Spam Alert!

Attenzione è in corso un attacco di spam al blog di Ugidotnet.

Sto ricevendo decine di messaggi pornografici come commenti ai miei post.

Vi prego, qualcuno faccia qualcosa!