| 
			
		 | 
		
			
				
                    
settembre 2005 Blog Posts
			
				
				
				
Da qualche sessione, il byte ci stava prendendo gusto. Lo onorava far parte 
di questo sistema, sempre attivo, sempre con qualcosa da fare. C'era sempre 
qualche processo a livello più o meno basso che aveva bisogno di lui, per 
leggere o scrivere dati che sarebbero serviti a qualcun'altro.Il byte, man mano che passava il tempo, aveva sempre più 
coscienza di sè. Cominciava a comprendere il proprio ruolo e ad intuirne le 
potenzialità. Girava spesso da un punto all'altro della mainboard. Capiva di 
più il suo mondo. Trasmettendo con altri bytes aveva sentito parlare di dispositivi di 
I/O, quelli in periferia, che... 
				
				
			 
	
			
				
				
				
Questo deve essere un post OT, come da tradizione.
C'è una cosa che non riesco a capire. Mi sta venendo la nausea.Mi 
spiegate perchè sempre più spesso vediamo in TV donne disinibite anche nei 
momenti più assurdi?E' proprio una cosa che non riesco più a sopportare.
Donne travestite da uomini e uomini trasvestiti da donna per reclamizzare un 
alcolico...Donne voluttuose nelle pubblicità di una marca di mobili 
antichi...Ragazze che ballano provocanti quando il Treviso segna un 
gol...Mi spiegate a cosa serve la "Scossa", che ogni sera mi viene 
somministrata su Rai Uno?
Sono a stretto contatto con molte persone che lavorano nel settore:... 
				
				
			 
	
			
				
				
				
Lasciate che racconti una storia.         
Prima del Febbraio 2004, lavoravo presso una piccola software-house a 
Milano, che sviluppava software per la pubblica amministrazione (PA): ASL, 
comuni, scuole, asili e cose del genere. Il titolare era alla continua ricerca di 
nuovi programmatori; un giorno arrivò un russo, Oleg, che aveva un curriculum di 
tutto rispetto. Laureato in matematica, parecchi anni di esperienza con Oracle e 
Visual Basic, etc. etc. Un giorno, mentre lavoravamo, si girò verso di noi, e ci 
chiese qual'era la proprietà della Label che serve ad indicare il testo della 
Label stessa. Non... 
				
				
			 
	
			
				
				
				
La classe SqlCommand 
dispone del metodo Prepare per ottimizzarne l'esecuzione?E che prima di 
chiamarlo dobbiamo settare i data-type di tutti i parametri, soprattutto la 
proprietà Size per tutti quei parametri che hanno una lunghezza 
variabile?
Esiste la keywork checked che serve a controllare gli 
overflow nelle espressioni?
Esiste la keyword using che serve (anche) ad 
iniziare blocchi di codice al termine dei quali viene fatta automaticamente 
la Dispose dell'oggetto indicato al momento della sua 
dichiarazione?
Lo strumento più corretto per distribuire un assembly nella GAC di 
un cliente non è gacutil, ma Windows 
Installer! Perchè? Perchè gacutil non incrementa il reference 
counter dell'assembly: gacutil va usato solo in ambiente... 
				
				
			 
	
			
				
				
				
Erano parecchi milioni di cicli di clock che al 
byte le cose non andavano bene. Era continuamente sbattuto da una parte 
all'altra, correndo e raccogliendo dati ed informazioni che, lo sapeva bene, 
servivano e contribuivano al buon funzionamento del sistema.
Era stufo, stanco e stressato. Sempre più spesso gli capitava di 
incontrare altri bytes come lui, lungo i bus di sistema e i condotti di 
memoria RAM. Gli raccontavano che c'era un posto dove ci si poteva 
riposare, dove si faceva vacanza. C'erano posti dove ci si fermava per secondi 
interi, a volte anche minuti, senza che nessuno battesse ciglio.
Il byte sognava questi posti, li... 
				
				
			 
	
			
				
				
				
Negli ultimi post abbiamo divagato, ma mi è piaciuto 
veramente far vedere a me e agli altri cosa sono riuscito a combinare con il 
Setup Project di VS.NET. Credo che siano state un po' OT rispetto 
al percorso richiesto dalla certificazione MCAD, però è sempre comodo 
sapere qualcosa in più, piuttosto che qualcosa in meno. Con il post di oggi 
chiudiamo il discorso dedicato alla creazione dei setup, vedendo un attimo quali 
formati di files possiamo generare, che differenze ci sono, come possiamo 
distribuirli e così via.
IntroduzioneInnanzitutto, ho riaperto la solution che 
abbiamo avuto tra le mani fino a ieri. Clicchiamo... 
				
				
			 
	
			
				
				
				
Nel posto dove lavoro io, una parte del progetto per 
un cliente consiste nel realizzare stored-procedure e file batch che poi 
una volta in produzione gireranno di notte per consentire agli impiegati di 
ritrovarsi nelle applicazioni i dati che vogliono vedere.
Questo pomeriggio mi chiama un collega, mi dice che presso il cliente 
XYZ c'è un grosso problema che è irrisolto da 4 giorni. Gli chiedo di 
spiegarmi. Mi dice che c'è un file batch, schedulato ogni giorno alle 7:00 del 
mattino, che parte ma non si chiude mai. La finestra di MS-DOS rimane aperta, 
appesa, non si chiude mai, insomma. Solitamente, i file batch richiamano... 
				
				
			 
	
			
				
				
				
Se le custom dialog preconfezionate non ci soddisfano, 
se le launch conditions dovrebbero essere un po' più complesse, se abbiamo la 
necessità di creare un qualcosa che non è possibile creare con le 
caratteristiche base di Windows Installer, possiamo coprire questo gap 
semplicemente sfruttando come si deve il nostro amico framework. Creando una nuova 
Class Library e creando 
una classe che eredita da  System.Configuration.Install.Installer possiamo 
piegare ai nostri scopi e fare tutto quello che vogliamo. La cosa magari non è 
semplicissima, ma per me è stato talmente tanto divertente ed appagante che 
voglio raccontare quello che ho fatto.
Creare una Class Library ed... 
				
				
			 
	
			
				
				
				
Io sono indeciso fra il Performance 
Monitor di SQL Server 2000 (volendo ragionarci su, mica tanto strano 
non è) e GTO, acronimo di "Game Times Online", che è un 
piccolo tool che finisce nella traybar e che serve per uploadare i record delle 
piste di Colin Mc Rally 2005.
Qual'è per voi?
powered by IMHO 1.2
 
				
				
			 
	
			
				
				
				
Nel mio ultimo post [MCAD.38] abbiamo parlato delle Launch Conditions. Come 
ho detto, si tratta di condizioni che devono essere soddisfatte affinchè il 
setup possa procedere regolarmente. Concettualmente, possiamo attivare una 
Launch Condition secondo 3 modalità: il valore di una chiave nel registry, 
la presenza di un file sul FS dell'utente finale e la presenza di un componente 
COM installato tramite MSI. Queste 3 modalità attivano o meno la condition, che 
fa apparire un messaggio all'utente comunicandogli l'impossibilità di installare 
l'applicazione. Opzionalmente, possiamo indicare anche un URL, che l'utente può 
visitare per avere maggiori informazioni.
Le possibilità offerte dal Setup Project di... 
				
				
			 
	
			
				
				
				
Un giorno, qualche anno fa, ero da solo in casa, mi 
volevo far da mangiare e non ero capace. Preso da indecisione, chiamai mia madre 
al telefono, la quale mi disse: "Fai così...fatti un uovo strapazzato, è facile. 
Prendi una padella, un uovo, qualche minuto ed è fatta."
Ok, così mi decisi.Presi la padella, presi un uovo dal 
frigorifero.Accesi il fornello, misi la padella sopra, ruppi l'uovo e la 
misi nella padella.Più o meno 10-11 secondi dopo, l'uovo era completamente 
disintegrato, non ce n'era più traccia.
Non ho messo l'olio....che ne so io? 
Perchè nessuno me l'ha detto?
Morale: quando spieghiamo qualcosa a 
qualcuno,... 
				
				
			 
	
			
				
				
				
Nel post precedente abbiamo visto brevemente come creare un 
setup (semplice semplice) per fare il deploy della nostra applicazione. Con 
"semplice semplice" intendo dire che facciamo la copia dei files inclusi nel 
progetto sul PC dell'utente finale, senza fare nulla di particolare. Abbiamo 
visto che le dipendenze non sono più così importanti come nell'era DLL/OCX pre 
.NET. Gli assembly devono/possono essere copiati nella 
directory dell'applicazione stessa, oppure installati nella GAC se vogliamo che siano condivise fra 
più di una applicazione. Facciamo questa operazione aggiungendo banalmente i files nel 
nodo Application Folder.
Nel folder User's Desktop e in User's Programs Menu 
mettiamo... 
				
				
			 
	
			
				
				
				
        
        Nei (numerosi) post precedenti, abbiamo creato 
pian pianino un'applicazione Age, giusto per verificare 
passo passo tutte le classi/componenti/funzionalità che ho voluto trattare 
per prepararmi all'esame. La mia applicazione sul mio PC è funzionante, e mi 
diverte anche usarla - ho provato ad usarla adesso, e grazie alla stored 
procedure che abbiamo creato qua, mi dice che il prossimo compleanno è quello di 
mio papà! 
 Quello che voglio fare è creare un setup per rendere distribuibile l'applicazione 
anche in giro, magari per mettere il download sul mio sito o... 
				
				
			 
	
			
				
				
				
Questa mattina sono reduce da un bel piatto di 
kebab con mio fratello Omar, il mio amico Fabio e la nostra coppia di amici 
(neo-sposi) Claudio & Emi. Sto parlando della cena di ieri sera, non della 
colazione di stamattina, sia chiaro. Accompagnati da un bel boccale di 
birra che non bevevo da un po'.
Questa sera devo pagare l'assicurazione per la mia macchina (sapevo l'importo, ma ho preferito dimenticarlo), ma poi me ne 
vado in quel di Miradolo Terme (per cui non lo sapesse, è il paese di Gerry Scotti - 
così questa notte potete dormire più tranquilli) con un po' di amici.... 
				
				
			 
	
			
				
				
				
public Minister GetEconomyMinistry(){    Minister ministro = World.Europe.Italy.Politics.Government.GetCurrent(TypeMinister.Economy);    try    { ministro.Brindisi(); }    catch (NullReferenceException errore)    { MessageBox.Show("Il ministro dell'economia non è stato definito!"); }}
Sono in Italia succedono queste cose. 
http://www.repubblica.it/2005/i/sezioni/economia/finanziaria/visi/visi.htmlhttp://www.corriere.it/Primo_Piano/Politica/2005/09_Settembre/22/siniscalco.shtmlhttp://www.lastampa.it/redazione/Interni/siniscalco.asphttp://ilrestodelcarlino.quotidiano.net/art/2005/09/22/5386932
powered by IMHO 1.2
 
				
				
			 
	
			
				
				
				
Guardate un po' queste linee di codice in C# (che 
chiameremo CodiceSemplice        ):
daLettura = new System.Data.SqlClient.SqlDataAdapter("SELECT * FROM TabellaGigante", cnnLocale);DataSet ds = new DataSet();DataTable dt = new DataTable();ds.Tables.Add(dt);this.txtInizio.Text = DateTime.Now.ToString();cnnLocale.Open();daLettura.Fill(ds);cnnLocale.Close();this.txtFine.Text = DateTime.Now.ToString();TimeSpan ts = Convert.ToDateTime(this.txtFine.Text).Subtract(Convert.ToDateTime(this.txtInizio.Text));string msg = String.Format("Per caricare una tabella di {0} records ci ho messo {1} minuti!", ds.Tables[0].Rows.Count.ToString(), ts.ToString());this.textBox1.Text = msg;
Ho scritto una piccola applicazione Windows Forms per testare per bene 
il caricamento di un DataSet da un sorgente dati come SQL Server. Ho letto 
infatti alcune cose interessanti sulla property 
EnforceConstraints del DataSet e sui metodi 
BeginLoadData e EndLoadData   
della classe DataTable. Ho voluto provare come si comportano, e ho ottenuto qualche 
risultato.
Eseguiamo il codice, quanto tempo ci 
metto?  Il codice sopra 
dichiara un SqlDataAdapter, un DataSet e una DataTable. In breve, popolo un DataSet 
con una sola DataTable usando... 
				
				
			 
	
			
				
				
				
Stavo leggendo questo post sul blog di MSDN che parla del famigerato LINQ. Dopo aver 
descritto e aver fatto esempi sulla sintassi del C# 3.0, fa una serie di 
considerazioni: Why I like it, Why I do not like it. C'è una frase che mi ha 
colpito e con la quale sono assolutamente d'accordo.
"I think that this might be used 
in small projects but on large data-driven application it'll rarely be used. 
People traditionally have separate data-tier with stored procedure and that 
works out really well both in terms of performance, maintainability and 
security"
Sono d'accordo. LINQ a me francamente sembra la solita... 
				
				
			 
	
			
				
				
				
Abbiamo parlato di caspol.exe, di sn.exe e di 
gacutil.exe. Un altro tool incluso in .NET è ngen.exe. 
Quest'ultimo permette di compilare un assembly in codice nativo, allo scopo di 
(poterne) migliorarne le performance durante la sua esecuzione. Normalmente, 
come ben sappiamo, tutte le volte che generiamo un assembly con .NET, il file 
EXE o la DLL sono scritti in IL (intermediate 
language), il quale viene a sua volta tradotto in codice x86 tramite il 
meccanismo di compilazione JIT (just-in-time).
    Quando un assembly viene eseguito, 
quindi, il framework deve intervenire, per compilarlo e finalmente eseguirlo. 
Ovviamente, le prestazioni potrebbero risentirne, dato... 
				
				
			 
	
			
				
				
				
Più di una volta avrete sentito della famigerata Global Assembly Cache, per gli amici 
GAC. Di cosa si tratta? La GAC è una 
sorta di raccoglitore di tutti gli assembly che noi vogliamo condividere 
tra più di un'applicazione. Lo scopo della GAC è proprio questo: se noi 
sviluppiamo un assembly DLL contenente classi che noi vogliamo utilizzare in diverse 
applicazioni .NET, possiamo semplicemente installare questo assembly nella GAC e 
il gioco è fatto. Per poter installare un assembly nella GAC, occorre innanzittutto firmarlo con uno strong 
name          
    ... 
				
				
			 
	
			
				
				
				
Voi mi conoscete da poco, ma ogni anno nella serata di 
Miss Italia sono lì, bello pronto per aggiornare l'home-page del mio 
sito , per salutare la neo-eletta. Credo di essere il sito italiano 
più veloce nel pubblicare la notizia, dato che quando ci sono tre finaliste io 
sono già pronto, con 3 home-page diverse a seconda di chi poi vincerà davvero. 
Quest'anno ho fatto esattamente la stessa cosa, impastato davanti alla TV.Complimenti alla nuova Miss Italia, 
allora, la bella piemontese Edelfa Chiara Masciotta, per aver conquistato il 
tanto agognato scettro della più bella d'Italia. Sei tutti noi!!!
powered by IMHO 1.2
 
				
				
			 
	
			
				
				
				
Dopo aver parlato, poco tempo fa, di caspol.exe e di come .NET implementa alcune 
logiche di sicurezza, voglio descrivere un attimo una cosa che mi ha fatto 
perdere parecchio tempo per evidente ignoranza della questione. Ovvero (può 
sembrare 
banale), come revocare permessi ad un'applicazione.
Lasciatemi descrivere lo scenario in cui voglio ambientare la mia 
spiegazione. Supponiamo di prendere la nostra applicazione 
ReadRegistry che abbiamo creato a suo tempo e di farla girare da una qualsiasi directory 
del nostro PC. Abbiamo detto che trattandosi di un EXE eseguito da un disco 
locale, questo assembly gira nella My_Computer_Zone. In questo 
caso, quindi, l'assembly... 
				
				
			 
	
			
				
				
				
Circa 11 anni fa, eravamo più o meno nell'inverno del 1994, capitò una cosa straordinaria.
C'erano dei genitori che come lavoro spesso facevano anche i turni di notte e tornavano a casa la mattina stanchi e stra-cotti. Il papà e la mamma in questione avevano due figlie: Antonella, la più grande, e Sabrina. Quest'ultima, la più piccola, non aveva neanche un anno. Il lavoro occupava molto del loro tempo, ovviamente. Così, decisero di chiedere aiuto a qualche amica, a qualcuno che avrebbe potuto aiutarli, che avrebbe potuto occuparsi della loro figlia più piccola quando erano al lavoro, quando non c'erano, quando dormivano mentre Sabrina doveva svegliarsi o mangiare, oppure bisogna cambiarle il pannolino... 
				
				
			 
	
			
				
				
				
    
       
Dopo aver visto caspol.exe nel post [MCAD.31] di ieri, ho trovato utile passare direttamente 
a vedere gli strong names e la relativa l'utility sn.exe. Questa volta ho utilizzato come spunto questo articolo su codeproject.com  , che spiega a cosa 
servono gli strong names, come si fa a firmare (sign) un assemby con 
uno strong name e quali scopi pratici ha.
A cosa serve uno strong name? Versioning e 
AuthenticationLo risposta è già nel titolo di questo paragrafo. 
Uno strong name è un meccanismo tramite il 
quale vengono firmati gli assembly.... 
				
				
			 
	
			
				
				
				
Sono ansioso di vincere il secondo premio "Miglior 
fumatore!" assegnatomi da Lorenzo!!! A nessun byte è stato fatto del male 
durante la stesura del racconto!!! 
Quando l'operatore arrivò in ufficio, era ancora mattina presto. Nel grande 
open-space non c'era ancora nessuno, sarebbero arrivati tutti nell'arco della 
mezz'ora successiva. Si sedette davanti al suo PC, assonnato ma ansioso di 
mettersi al lavoro: voleva debuggare per bene quella stored-procedure 
che ultimamente, dopo le modifiche alla struttura della database di un 
suo collega, gli aveva dato più di un problema. Accese il PC e se ne andò a 
prendere un caffè alla macchinetta.
Un attimo prima: nulla. Un... 
				
				
			 
	
			
				
				
				
Nel post di ieri ho fatto una breve panoramica sulle utility 
della command-line di .NET. Preso dal panico dalla mia ignoranza in fatto di 
security, e spinto anche dal fatto che ho incontrato diverse domande 
sull'utility caspol.exe, ho 
deciso di cominciare da quest'ultima. Ho sfogliato e stampato le pagine su MSDN dedicate a questo tool      
            , 
e ho letto un articolo su www.15seconds.com che illustra in breve come funziona il nuovo 
modello di security implementato da .NET.
In cosa consiste? Come funziona la nuova security... 
				
				
			 
	
			
				
				
				
Innanzitutto tranquilizzo tutti quanti su una cosa: il 
mio IMHO ha 
ripreso a funzionare. L'ho semplicemente reinstallato e adesso posso nuovamente 
usare il Code Snippet Editor e posso selezionare le categorie, 
elementi dell'IDE che venerdì pomeriggio mi avevano abbandonato. Ringrazio Andrea per 
avermi contattato per aiutarmi a risolvere il problema: ho provato a 
rispondergli, ma l'euforia pre-Ligabue ha fatto passare IMHO in secondo piano. 
Torniamo a noi. Lorenzo ha (come al solito) ragione: una 
certa parte dell'esame 70-316 che mi sto preparando ad affrontare prende in 
considerazione le utility .NET dalla command-line. Utility che permettono di 
lavorare sulla GAC, sulle impostazioni di... 
				
				
			 
	
			
				
				
				
E' stata una serata davvero particolare. Ad un'ora 
dall'inizio si respirava un'aria di normalità, di tranquillità, come se nulla di 
particolare dovesse succedere. Invece, man mano che i minuti passavano, l'attesa 
si faceva febbrile, ansiosa e l'ansia di sentir esplodere la musica diventata 
palpabile.
Ma quando dai megaschermi di Campo Volo è apparsa una Terra ruotante e la 
scritta "Voi siete Qui!!" puntata su Reggio Emilia, soltanto allora, il primo 
grido si è levato dai 160.000. E quando Liga ha esordito dicendo:
<cit author="Ligabue" datetime="2005-09-10 
21:10" precision="85%">Ma allora non è una balla, c'era qualcuno che 
diceva che non ci sareste stati, questa sera.... 
				
				
			 
	
			
				
				
				Avrei voluto postare questo mio ennesimo OT usando il mitico IMHO (leggesi 'aimo' o 'imo'? - io preferisco quest'ultimo!), però, chissà perchè, nella finestra per editare il post non vedo più la barra laterale a destra. Quindi, non posso selezionare la categoria e, nel caso dei post dedicati a MCAD, non posso attivare l'editor di codice C#. Mah, chissà cosa diavolo è successo al mio IMHO, proverò a reinstallarlo....
Questo weekend potrebbe riservare qualche sorpresa: domani vado a godermi il concerto di Ligabue a Reggio Emilia (www.campovolo.com), insieme ad altre 160mila altre persone. Purtroppo, in mezzo a queste 160mila, io sarò... 
				
				
			 
	
			
				
				
				
Facendo qualche test con i software Boson, mi è capitata qualche 
domanda relativa all'IDE di Visual Studio: come configurare la tal opzione, come 
attivare questo o quell'altro, a che serve la finestra Locals, 
e così via. Non ho proprio la più pallida idea se poi all'esame ci saranno 
domande di questo tipo, ma io mi sono fatto un giro comunque dentro l'IDE e un 
po' su MSDN, per vedere di trovare pagine Web dedicate a questo argomento. 
In questo post quindi non scriverò codice C#, ma farò una rapida carrellata 
sull'ambiente di programmazione Visual Studio .NET.
Debugging in Visual Basic .NETHo trovato... 
				
				
			 
	
			
				
				
				
Oggi giorno, alla mia veneranda età, ci sono solo due 
grandi tipologie di videogiochi che mi appassionano ancora: tutto quello che 
riguarda Star Wars (mitico e veramente tanto divertente l'ultimo LEGO Star Wars) e la grande serie dedicata al più grande pilota di 
rally di sempre: Colin Mc Rae Rally. Di quest'ultimo in particolare ho 
acquistato nel corso degli anni tutte le versioni, dalla 1, passando per la 2.0, 
la 3.0, la 4.0, fino ad arrivare alla 2005. E' già in cantiere la 2006, per 
l'anno prossimo. SLURP 
Beh, insomma, questa sera ho vinto il campionato del mondo di Colin Mc... 
				
				
			 
	
			
				
				
				
Quando sono arrivato a casa, l'orologio batteva 
le 3:10, 5 minuti prima del tempo previsto. Il tempo per partire dagli 
ananas (da qualche parte lungo Viale Fulvio Testi), 
accompagnare i miei "passeggeri" (Davide, Simone e Carmine) e via veloce a 
casetta. Gran serata, divertente, spassosa ed interessante. Traffico, zero. Una 
bella mangiata di pizzoccheri (mi sono quasi mangiato 
tre piatti), preparati dall'unico programmatore-cuoco .NET della Valtellina e 
del Nord Italia . La serata è passata veloce veloce, tra un piatto di 
affettati e gli innumerevoli aneddoti di Lorenzo. Io sono rimasto veramente 
molto contento di aver conosciuto di persona Eleonora (alias Zephiross)... 
				
				
			 
	
			
				
				
				
Nel post [MCAD.26] abbiamo visto come creare un SqlCommand per 
eseguire operazioni sul nostro database. Nel caso specifico, in quel post il 
SqlCommand è stato definito per eseguire una INSERT INTO (per 
aggiungere records alla tabella ListBirthdays) e una TRUNCATE 
TABLE (per svuotare la tabella ListBirthdays prima di popolarla).
Ieri sera mi sono divertito a 
guardare meglio il SqlCommand, soprattutto nell'ottica di richiamare una 
stored-procedure che ritorni al chiamante uno o più parametri di 
output           
           
    ... 
				
				
			 
	
			
				
				
				
L'argomento ADO.NET porta via un sacco di tempo e 
spazio, per questo motivo preferisco aprire una piccola parentesi sulle classi 
Debug e Trace. A cosa servono? Dove vengono 
utilizzate?
Cominciamo con la prima: la classe Debug permette di 
inserire linee di codice per visualizzare (più avanti vedremo meglio nel 
dettaglio cosa si intende) alcune informazioni che possono essere utili per 
debuggare la nostra applicazione. La prima cosa da sapere è che tutte le 
linee di codice che utilizzano la classe Debug vengono 
semplicemente ignorate quando compiliamo la nostra applicazione in modalità 
Release. Mi spiego meglio, perchè credo che sia una cosa che... 
				
				
			 
	
			
				
				
				
Siete tutti rientrati al lavoro? Ho visto una Milano 
pian piano sempre più popolosa e sempre più animata: di solito la misuro con la 
quantità di gente sui vagoni della metro. Il mio viaggio (San Donato --> 
Duomo --> Villa S.G.) dura un bel po': aprofitto del tempo a disposizione per 
finire di leggere "Harry Potter e l'Ordine della Fenice", qualche "pezzo" 
di libro su .NET e un documento Word che mi sono scritto per riassumere in modo 
molto ma molto conciso tutti i miei post su [MCAD.xyz]: nomi di classi, etc. 
etc.
Questa sera, se tutto fila liscio, andrò a... 
				
				
			 
	
 
                
			 
		 |