| 
			
		 | 
		
			
				
                    
giugno 2006 Blog Posts
			
				
				
				
Bisogna dirla tutta: non so nelle altre parti d'Italia, ma qua a Milano il 
caldo è invernale davvero. Forse non è proprio il caldo in sè, ma il tasso di 
umidità che manda un po' tutti a terra per KO tecnico alla 1° ripresa. Se fosse 
per il viaggio fino in ufficio alla mattina, andrebbe anche bene. La permanenza 
in ufficio per tutta la giornata è mitigata dall'aria condizionata, quindi 
nessun problema. Ma il vero grande incubo è il ritorno a casa, perchè farsi 
buona parte della linea rossa e buona parte della linea gialla, senza aria 
condizionata, nella calca... 
				
				
			 
	
			
				
				
				
Varie ed eventuali sui bytesIl byte non nasce: viene istanziato.Il byte non diventa mai un adulto indipendente: c'è sempre 
qualcuno che si occupa di lui. Il byte non 
si riproduce: un thread dice al byte di 
clonarsi.Il byte non si accoppia: può formare 
un byte[2] con chi vuole.Il byte è poligamo per natura: può formare un byte[x] quante volte vuole.Il 
byte non ha la patente e non guida: sale sul 
bus e si fa portare dove necessario! Il byte non muore: 
viene deallocato.
powered by IMHO 1.2
 
				
				
			 
	
			
				
				
				
La potenza di informazione del Lato Oscuro della Forza non 
è solo dalla parte di Lorenzo.  Da ieri abbiamo infatti almeno un MCP in 
più, Roberto Maccario, che mi scrisse un sacco di tempo fa 
chiedendomi informazioni sull'esame 70-316. Beh, insomma, ieri Roberto ha 
superato l'esame ed è diventato MCP insieme a me e a tanti altri. 
Congratulazioni e soprattutto grazie per avermi scritto! 
powered by IMHO 1.2
 
				
				
			 
	
			
				
				
				
Quando si svegliò, si sentì subito di cattivo umore. 
Voleva starsene per conto proprio, tranquillo, mentre in realtà sapeva quello 
che lo aspettava. Il byte rimase ancora qualche ciclo di clock nella propria 
cella di memoria, stropicciandosi gli occhi e cercando di ricordarsi 
dove si trovava. Che vita di inferno - si disse il byte! Non è possibile vivere 
in questa maniera, sempre di corsa, svegliandosi la mattina senza ricordarsi più 
nulla del giorno prima, senza un attimo di tempo libero. Pensò per un solo 
istante a quanto sarebbe stato bello poter vagare liberamente per il sistema, 
senza dover per... 
				
				
			 
	
			
				
				
				
Volevo andare giù a mangiare, ma dai miei colleghi 
giunge voce che c'è una fila interminabile, per cui abbiamo tutti rimandato ad 
un po' più tardi.  Mi sono messo a leggere i vari blog di 
MSDN, e ho beccato questo post che mi è piaciuto un sacco, quindi lo scrivo anche io. Igor in versione copione! 
Alle 06:00 il mio Asus mi sveglia, suonando una delle mie 
canzone preferite. Attualmente è He wasn't, di Avril 
Lavigne. Non per altro: una voce femminile sveglia molto di più di una 
voce maschile. Una canzone aggressiva sveglia un po' di più di una 
canzone... 
				
				
			 
	
			
				
				
				
Poco meno di un anno fa - era fine luglio - ordinai su 
CHL.it il mio 
attuale PC. Rimasi molto soddisfatto del mio ordine, perchè dopo averlo 
confermato ho ottenuto tutta una serie di SMS che mi informavano costantemente 
di come stava procedendo l'evasione dell'ordine stesso. Alle 10 confermo 
l'ordine, alle 12 l'ordine stava per essere verificato, alle 14 il magazziniere 
stava preparando la merce, alle 21 l'ordine era pronto per la spedizione, etc. 
etc. Sono convinto che chiunque lavori in CHL abbia un sensore che spedisce un 
SMS appena fa qualcosa che fa progredire l'ordine, e che ci avvisa... 
				
				
			 
	
			
				
				
				
Ho appena dato un'occhiata a CodePlex e 
mi è cascato l'occhio su questo progetto, che permette di consultare l'help-on-line di MSDN 
attraverso la command-line.  Il progetto si chiama 
msdnman e mette a disposizione una piccola lista di parametri 
per fare ricerche nel gigantesco database MSDN. Con il parametro 
-k possiamo specificare le keyword da ricercare, mentre il 
parametro -language permette di filtrare gli esempi di codice 
solo nel linguaggio indicato. Il modo più semplice per utilizzarlo è mettere 
l'eseguibile msdnman.exe in una directory prevista dai path di 
sistema, così da poter dare ovunque siamo comandi del tipo:
msdnman System.Collections.IList
L'output per adesso non... 
				
				
			 
	
			
				
				
				
A tutti quelli che pensano che chi usa il PC deve 
portare gli occhiali,a quelli che credono che stare seduti davanti al 
monitor fa diventare gobbi,a quelli che pensano che lavorare con il PC sia 
monotono e triste.
A tutti quelli che mi guardavano male quando a 10 anni passavo il tempo al 
computer,a quelli che oggi appoggiano la mano sul mouse e lo 
sollevano dalla scrivania,a quelli che oggi hanno bisogno del PC e non 
lo capiscono e ci rinunciano.
A tutti quelli che dicono: "A me il computer non servirà mai!" ma alla fine 
hanno un'e-mail,a quelli che fanno l'ITIS, specializzazione... 
				
				
			 
	
			
				
				
				
13° Legge di Damiani sui bytesI 
bytes soffrono il caldo. Se dovete dichiarare un byte[2] (vedere la 2° Legge di Damiani), dichiarate un byte[3], 
assicurandovi di avere sempre byte[1] = 0 per far 
passare un po' d'aria. 
Un byte sudato e/o accaldato potrebbe non essere del 
tutto felice, e di conseguenza potrebbe essere portato a non lavorare in modo 
appropriato, causando svariati crash di sistema incontrollati. Sistemi 
tradizionali (ventilatori, aria condizionata, etc.) non agiscono direttamente 
sui bytes, ma sull'hardware (environment) in cui il byte vive. Per ovviare al problema, e per rendere più felici i 
bytes del vostro sistema, fate sempre... 
				
				
			 
	
			
				
				
				
Ho appena letto questo post segnalato da Lorenzo che 
mi ha fatto riflettere. Le modalità del database unit testing descritto 
assomigliano moltissimo alle modalità con cui 
sfrutto nUnit e Test Driven 
.NET nelle mie ultime settimane. Mi spiego meglio, ma prima ho 
bisogno di fare una piccola premessa.
Sabato mattina mio fratello ha messo live la nostra piccola 
applicazione per la gestione di concessionari d'auto, creata ad-hoc per un 
concessionario piuttosto imponente di Lodi. Lo sviluppo di questa applicazione 
ha richiesto molto più tempo di quello preventivato inizialmente, per tutta una 
serie di motivi, di cui magari parlerò in un altro post (anche un fallimento... 
				
				
			 
	
			
				
				
				
Ho passato un weekend un po' più sportivo rispetto al mio 
solito.  Ieri pomeriggio sono andato all'Idroscalo, qua a 
Milano, per prendere un po' di sole e per fare un po' di lanci con il mio amico 
freesbee, che giaceva dall'anno scorso nel mio sottoscala. Ho speso un po' per 
quel fresbee, perchè è un modello semi-pro acquistato in un negozio a 
Milano che vende tutto materiale per sport un po' particolari. Insomma, ho corso 
come non facevo da un sacco di tempo, ho respirato un po' d'aria pulita e questo 
fa senz'altro bene. Questa mattina, intorno alle 10, ho... 
				
				
			 
	
			
				
				
				
IntroduzioneNel post [2] relativo ad NHibernate, avevamo visto come 
scrivere file di mapping per legare due classi con una relazione uno-a-molti. 
Nel caso specifico, lo riassumo in breve, avevamo una classe 
HockeyPlayer ed una classe Faults: ad 
un'istanza della prima, possono corrispondere più istanze della seconda. Senza 
andare troppo nel dettaglio, più che altro per non ripetere cose già dette, 
riporto qui sotto il mapping della classe 
HockeyPlayer:
<class name='HockeyPlayer' table='HockeyPlayers'>    <id name='ID' column='ID' type='Int32' length='4' unsaved-value="0">      <generator class='identity' />    </id>    <property name='Name' type='String' column='Name' length='50'/>    <property name='Height' type='Int32' column='Height' length='4'/>    <property name='Weight' type='Int32' column='Weight' length='4'/>    <property name='Number' type='Int32' column='Number' length='4'/>    <bag name="Faults" cascade="all" lazy="false" inverse="true">        <key column="IDPlayer" />        <one-to-many class="Fault, HockeyObject" />    </bag></class>
Detto questo, avevamo detto che anche la classe Faults deve 
essere mappata opportunamente. Quello che mi interessa far ricordare (e 
ricordare a me stesso) è che nella classe Fault deve esserci un 
riferimento all'istanza HockeyPlayer... 
				
				
			 
	
			
				
				
				
Ho passato gli ultimi due giorni in full-immersion con 
due colleghi tedeschi per un passaggio di consegne di un progetto che, 
tecnicamente, ho seguito soprattutto io. Ne ho abbastanza! Lo scorso weekend mi 
ero riproposto di andare a farmi una scampagnata da qualche parte, ma ho dovuto 
rimandare per un motivo o per l'altro. Domenica avevo invitati in casa, 
sabato ho dovuto lavorare, venerdì sera mi pare ci fosse la partita dell'Italia 
e quindi ogni locale aveva un mega-schermo.
Questo weekend, tempo meterologico permettendo, forse si prospetta migliore. 
L'unico impegno ce l'ho questa sera (ma non ve ne parlo, altrimenti andrei 
in... 
				
				
			 
	
			
				
				
				
Rimbalzato dall'openspace in cui lavoro, alla sala 
meeting con due persone della sede tedesca della società per cui faccio 
consulanza (con cui sto lavorando fianco a fianco da questa mattina) e la 
saletta dove grazie alla televisione che IO ho attaccato tutti adesso emettono 
grugniti ed altri versi strani in base a quella o a quell'altra azione. 
Adesso sgommo via, di là i due tedeschi mi aspettano, anche se io 
questa mattina li avevo avvisati del fatto che oggi sarei stato molto impegnato, 
chissà perchè! 
powered by IMHO 1.2
 
				
				
			 
	
			
				
				
				
Ci sono molte cose che fanno vergognare una persona. Fare 
una brutta figura, prendere un brutto voto a scuola, essere ripresi davanti ad 
un po' di persone. Io ieri sera ho masterizzato su un CD-R da 
700Mb un file Excel da 20Kb.  Ditemi un po' voi se non me ne devo 
vergognare. Credetemi, ho fatto il possibile, ma non avevo altro modo di dare 
quel maledetto foglio Excel a quella persona.
Non ho avuto scelta,Non ho avuto scelta,Non ho avuto scelta!
Qualche penitenza non c'è?
powered by IMHO 1.2
 
				
				
			 
	
			
				
				
				
Mio papà ha visto diverse volte il mio palmare 
funzionare come navigatore satellitare, specialmente sulla nostra 500. Ne è 
rimasto affascinato, perchè non credeva che fosse così semplice da usare, così 
accurato e così divertente. Tra l'altro, sa benissimo che lo uso molto 
spesso quando magari devo andare chissà dove, sia per motivi di lavoro, sia per 
svago. Insomma, diverse volte mi ha messo la pulce nell'orecchio, con frasi del 
tipo: "Uè, prenditi un palmare nuovo, quello che hai adesso 
lo dai a me.".
Ho sempre ignorato questo tentativo di corruzione , ma questa mattina ho cercato un po' sul 
sito Dell.it e... 
				
				
			 
	
			
				
				
				
Sono sempre stato affezionato ai dischi fissi Maxtor, 
perchè con loro non ho mai avuto alcun problema. Sto invece imparando a 
diffidare degli HD della Samsung: ho due dischi Samsung da 200Gb e negli ultimi 
30 giorni ho avuto un sacco di problemi. Il primo disco è 
diventato inutilizzabile: vede una partizione da 30 Gb circa, non riesco nè 
a formattarlo, nè a ripartizionarlo. Il secondo disco ha 
rischiato ieri di salutarmi: durante la copia da un HD all'altro (passando dalla 
LAN - notare che il disco Samsung era l'origine della copia, quindi da lì si 
leggeva e basta), a casa... 
				
				
			 
	
			
				
				
				
Questa mattina ho riscontrato un problema che deriva un 
po' da quello che ho descritto nei miei ultimi 3 post relativi ad NHibernate. 
Immaginate di avere una classe che espone una proprietà di tipo 
IList, per implementare una relazione uno-a-molti tra una 
classe father ed una classe child.
Immaginiamo di aver costruito un opportuno file di mapping per salvare questa 
classe, e la corrispondente classe figlia. Una delle caratteristiche di 
NHibernate è quella di poter restituire una lista di oggetti di questa nostra 
classe, perchè il file di mapping lo permette. Quindi, per esempio, possiamo 
scrivere codice simile a questo:
session = factory.OpenSession();ICriteria criteria = session.CreateCriteria(typeof(AttoVendita));IList list = criteria.List();AttoVenditaCollection ret = new AttoVenditaCollection();foreach (AttoVendita element in list)    ret.Add(element);
Con il... 
				
				
			 
	
			
				
				
				
L'altro giorno Lorenzo ha 
postato parlando di quella notizia secondo la quale si può essere accusati di 
diffamazione attraverso il blog. Non so se ho letto bene o male, non l'ho 
guardata con molta attenzione.
Non ordinate su Pixmania.com o, se proprio volete farlo, state bene attenti. 
Io ed altre persone abbiamo appena concluso un ordine: io ho preso la mia nuova 
Sound Blaster 4, mentre un mio amico ha preso la Nikon 
Coolpi P3, una macchina fotografica digitale. La scheda del prodotto su Pixmania.com dice 
espressamente che nella confezione ci sono i manuali in inglese e francese: 
quando il mio... 
				
				
			 
	
			
				
				
				
IntroduzioneEccoci al terzo 
(ultimo?) post dedicato ad NHibernate. Nel primo abbiamo fatto un'overview delle 
classi da persistere, alcune delle quali legate da una relazione uno-a-molti, 
nel secondo abbiamo visto come creare files di mapping corretti che possano fornire all'engine di persistenza 
di NHibernate tutte le informazioni su ciascuna classe e come le 
classe si relazionano fra loro.
Fino ad oggi, non abbiamo scritto una sola maledetta linea di codice. In 
realtà, almeno per quello che riguarda me, scrivere codice C# che utilizzi 
NHibernate per caricare/scrivere/cancellare i nostri oggetti è davvero una 
banalità, perchè il fulcro, tutta la logica e molta della complessità... 
				
				
			 
	
			
				
				
				
Devo dire la verità: ultimamente ho snobbato un po' il cinema. La bella 
stagione mi ha portato più all'aria aperta, per fortuna. Non so esattamente cosa 
farò durante il weekend: avrei dovuto festeggiare un compleanno di un'amica, ma 
per diversi motivi è stato tutto rimandato. Alla fin fine mi toccherà 
improvvisare e vedere di tirar fuori il meglio in tema di relax. Sembra una 
stupidaggine, ma fino a poco tempo fa avevo raggiunto il mio peso record di 
80Kg: ho dovuto rifarmi il guardaroba perchè i miei vecchi jeans non mi andavano 
più bene.  Due domeniche fa mi sono sparato... 
				
				
			 
	
			
				
				
				
Ho appena letto questa classifica dei Top 10 Must Haves 
(pubblicata il 6 giugno, quindi tutta roba recentissima), ovvero quei giocattoli 
tecnologici che non dovrebbero mancare a nessuno. Non sono d'accordo quasi su 
niente: mettere due console come la Sony PSP e la XBox 
360 è un'assurdità, io faccio a meno di tutte e due. E perchè mettere 
un Portable Media Center? Vada per il notebook, ma tutto il 
resto mi sembra solo un'accozzaglia di oggetti messi lì solo per fare 
pubblicità. Le uniche cose su cui invece concordo sono la fotocamera digitale 
(Canon PowerShot S80) e il videoregistratore digitale,... 
				
				
			 
	
			
				
				
				
Seconda ed penultima parteDopo aver 
introdotto ieri le classi coinvolte, e qualche altra disgressione nei commenti 
, vediamo oggi come realizzare un file di 
mapping che possa fornire all'engine di persistenza di NHibernate tutte le 
informazioni necessarie per salvare, caricare e cancellare un oggetto dal 
database.
Innanzitutto, e ci tengo a dirlo, è da sfatare il mito secondo il quale 
bisogna creare un file di mapping per ogni classe che 
vogliamo gestire tramite NHibernate. In realtà, e lo vedremo 
adesso, possiamo tranquillamente avere tutto dentro un solo file con estensione 
hbm.xml e scrivere lì tutto il necessario. Magari, cosa 
migliore se... 
				
				
			 
	
			
				
				
				
Oggi a mezzogiorno, durante la pausa pranzo, il mio 
amico Fabio è andato a ritirare il materiale dell'ordine che abbiamo fatto su 
Pixmania.com. Tra le altre cose, c'era la mia nuova Sound Blaster Audigy 4, che ho acquistato solo per lo 
sfizio di avere una scheda con il telecomando. 
Questa sera l'ho installata sul mio PC e devo dire che è promossa a pieni 
voti. A patto di avere un impianto di casse che supporti in qualche modo il 
sorround (io ho le Creative 4.1, prima edizione, che resistono a meraviglia), la 
resa, anche se non me ne intendo, è... 
				
				
			 
	
			
				
				
				
Sono impazzito molto nei giorni scorsi nel tentativo di sfruttare NHibernate per persistere 
business object del domain model di un'applicazione reale che sto sviluppando. Finchè 
si tratta di oggetti semplici, nessun problema, ma nel mio caso avevo a che fare 
con due oggetti relazionati uno-a-molti. Ieri sera ho risolto il mio problema, 
ma ho voluto replicare lo stesso scenario in una sample 
application       
          
 di cui ho già parlato in passato, per descrivere meglio il mio 
dilemma e per spiegare come l'ho risolto.
Le classi coinvolte: HockeyPlayer e... 
				
				
			 
	
			
				
				
				
Dalla pagina su MSDN dedicata a WinFX, sono andato a 
leggermi l'Introducing .NET Framework 3.0, direttamente dal 
blog del vice-presidente Somasegar. Il suo ultimo post, scritto qualche giorno fa, ha 
ricevuto fino a questo momento 0xFE commenti, anche di oggi, 
chiedendo un po' di tutto...che fine farà .NET, o il framework 2.0, Orcas, i 
codename dei progetti, il perchè hanno rinominato questo in quello, quando 
uscirà, etc. etc. etc.
Evviva, che bella confusione!!! 
powered by IMHO 1.2
 
				
				
			 
	
			
				
				
				
Ormai è passato poco più di un anno da quando ho aperto 
il mio blog qua su UGI. Inizialmente, non sapevo bene di cosa avrei parlato, 
mentre adesso (e man mano che il tempo passa) ho le idee un po' più chiare. Da 
qualche giorno ho aggiunto qualche categoria per suddividere meglio i contenuti: 
prima ne usavo una sola, Tecnologia, dove mettevo tutti i post 
che parlavano sia di hardware che di software, dove mettevo tip di 
programmazione sul data-binding o su MSBuild. Mi sembrava una categoria un po' 
troppo vasta, così ci ho pensato su e ho deciso di... 
				
				
			 
	
			
				
				
				
I parametri dell'attributo 
DllImportNell'ultimo post riguardante l'esame 70-536, abbiamo 
visto come utilizzare l'attributo DllImport per poter 
utilizzare una funzione esportata da una libreria unmanaged. Nella sua 
forma base, DllImport richiede un solo parametro: una stringa 
che contiene il nome del file DLL che esporta la funzione che ci interessa 
utilizzare nella nostra applicazione managed. L'ultima volta avevamo 
fatto un piccolo esempio, considerando la funzione GetTempPath, esportata da 
kernel32.dll. la dichiarazione nella nostra classe managedera:
[DllImport("kernel32.dll")]    private static extern uint GetTempPath(uint nBufferLength,       [Out] StringBuilder lpBuffer);
L'attributo DllImport può avere qualche parametro 
aggiuntivo. Ad esempio, nel codice qui sopra il nome della funzione GetTempPath 
corrisponde al nome della funzione contenuta in kernel32.dll. Se... 
				
				
			 
	
			
				
				
				
...che è la statale che va da Pavia a Brescia, passando 
dietro il mio paesino e mi collega all'ingresso della A1, uscita Lodi. Questa 
mattina, come ogni mattina, io, mio fratello ed il mio amico Fabio, ci mettiamo 
in macchina alle 7:40, convinti di arrivare in metropolitana alle 8:20 circa. 
Nulla di più sbagliato! La SS235, questa mattina, era imbottigliata come una 
bottiglietta da 33cl di Peroni e non c'era verso di raggiungere il casello. 
Abbiamo provato vie parallele, ma niente da fare. Abbiamo tentato di prendere 
l'autostrada dalla molto più trafficata strada che porta a Melegnano e lì, dopo... 
				
				
			 
	
			
				
				
				
Ho appena finito di scrivere il mio secondo articolo, che 
verrà pubblicato su Io Programmo di non-so-quando. Giusto per 
mantenere alto l'interesse, non vi dico di cosa tratterà.  Sappiate solo che è un argomento che mi ha 
abbastanza appassionato, tantè che quando l'ho studiato per l'esame sono rimasto 
stupito. Non avevo molta voglia di mettermi davanti al PC la domenica mattina, 
ma ho dovuto farlo, perchè avevo promesso alla redazione che lunedì avrebbero 
avuto tutto il materiale. Volevo lavorarci venerdì sera, ma gli amici, le 
amiche, le birre e le risate hanno avuto la meglio...di certo non mi 
lamento! 
Adesso finisco... 
				
				
			 
	
			
				
				
				
Sono appena tornato da una bella serata con amici al pub 
qua nelle colline di S.Colombano, piccolo paese agricolo piuttosto famoso per i 
vini. Eravamo sulla mia auto in quattro: io, mio fratello e due amici 
(Flavio e Fabio). Su un'altra auto, un altro gruppo di amici ed amiche. Come al 
solito, le chiaccherate tra amici finiscono per degenerare verso gli 
argomenti più disparati. Stasera, tra le altre cose, sulla via del ritorno si 
parlava di sostantivi non numerabili, nella fattispecie la parola 
pane.
Igor: "Cavolo, la parola acqua è una parola non 
numerabile, perchè non puoi farne il plurale!"Fabio: 
"......mmmhhhhh......."Igor: "Sì, dai.....come anche 
pane....la... 
				
				
			 
	
			
				
				
				
Ho cominciato da qualche giorno a lavorare su un altro 
grosso progetto che fa uso di SQL Server 2005 come database di 
warehousing. Mi sono installato, su consiglio di un collega, ApexSQL Edit, un software che è un po' una 
sorta di Query Analyzer/Enterprise Manager/Management Studio tutto in uno.
Scritto completamente in .NET, è molto carino davvero: ha il pieno supporto 
di Intellisense (che qui si chiama Intellilist), un object browser, un sacco di 
funzioni per fare filtri, ricerche e sorting sui dati, una quintalata 
di snippet, funzioni che forniscono un elenco di possibili JOIN per andare da 
una tabella all'altra,... 
				
				
			 
	
			
				
				
				
Oggi cominciamo i Mondiali di Calcio. E' molto triste che 
lo sport in quanto tale sia stato venduto alle multinazionali, nella fattispecie 
Sky , che di fatto sarà l'unico network televisivo che potrà mostrare 
tutte le partite. Non sono un fanatico del calcio, ma se lo fossi non esiterei 
un solo momento a protestare alla Rai, o a distruggere qualsiasi newsgroup 
di spamming, OT e di insulti vari. Onestamente, ma magari è un pensiero solo 
mio, lo ritengo davvero un oltraggio. Ma non è tanto colpa di 
Sky in sè, ognuno ha il diritto (forse) di tirare l'acqua al 
suo mulino:... 
				
				
			 
	
			
				
				
				
Da quando ho preso lo storage LAN a casa mia, ho dovuto 
migrare a Microsoft Outlook per gestire la mia posta elettronica. Fino a quel 
giorno, avevo sempre usato Outlook con un solo archivio esclusivamente per 
gestire tutti i miei dati inerenti il mio lavoro nel senso stretto: in primo 
luogo, la rubrica di tutti i clienti ed in secondo luogo gli appuntamenti presso 
gli stessi clienti. Sincronizzando i dati con l'Agenda Fusion installato sul mio Pocket 
PC, in Outlook mi ritrovo tutte le giornate che faccio nell'azienda nella 
quale faccio consulenza da più di un anno.
Adesso invece mi ritrovo due... 
				
				
			 
	
			
				
				
				
IntroduzioneP/Invoke è 
l'abbreviazione di Platform Invoke   e consiste 
nella capacità da parte del nostro managed code di utilizzare DLL di 
sistema ed eseguire le funzioni contenute. Ho trovato di grande comodità il sito 
www.pinvoke.net, che ci aiuta con una 
grande raccolta di tutte le librerie di sistema e come poterle importare in una 
classe managed per rendere accessibile da C#, VB.NET e da tutti gli altri 
linguaggi della famiglia .NET. Anche in questo caso, come nel mio ultimo post, 
abbiamo a che fare con una classe 
wrapper: sarà questa che il codice managed eseguirà. 
Tale classe deve essere decorata... 
				
				
			 
	
			
				
				
				
Bravo Lorenzo!  Mi aveva avvisato durante l'evento VSTS 
di aspettare ancora qualche giorno, ed in effetti oggi leggo che a questo 
indirizzo è possibile scaricare l'ultima release CTP dei DSL Tools.
Sul PC in ufficio rischio di far esplodere tutto, ma questa sera a casa li 
scarico, me li installo e gli darò un'occhiata. 
powered by IMHO 1.2
 
				
				
			 
	
			
				
				
				
Quasi quasi adesso esco, vado in banca e 
compro tutte le azioni di Google disponibili sul mercato!  A parte scherzi, tutto questo fioccare 
di servizi targati Google non mi può non far pensare che le sue azioni puntino 
al rialzo. A tutto vantaggio di chi gioca in borsa e ci guadagnerà parecchio. 
Confesso che non me ne intendo più di tanto di queste cose, però credo che la 
logica sia questa.
L'impressione però è che sia un po' troppo dispersivo. Va bene cercare di 
allargarsi e di occupare fette di mercato, ma di questo passo ci ritroveremo 
Google anche sui forni, sulle auto... 
				
				
			 
	
			
				
				
				
Se c'è una cosa che odio e che trovo noiosa è 
implementare l'interfaccia ICloneable sui propri business 
object. Nulla di complicato, parecchio di noioso, e molto, anche. In fin dei 
conti si tratta di creare un solo metodo Clone, di creare un 
nuovo oggetto dello stesso tipo della classe in cui ci si trova, assegnare una 
ad una tutte le proprietà e ritornare un oggetto con la classica return.
Perchè non farlo fare al nostro bravo (ed estensibile) class designer? 
  L'estensibilità del class designer di VS2005Mi sono ispirato all'articolo scritto dal 
nostro Marco 
      e... 
				
				
			 
	
			
				
				
				
Ho dichiarato un byte[3]  per questo. Ogni byte del mio array vi 
saluta. 
Oggi esce nelle sale cinematografiche Omen: Il Presagio, che è in realtà un 
remake di un file più vecchio, con Gregory Peck, uscito il 6 Giugno 1976, esattamente 
trent'anni fa. Ho visto questo film quando ero a casa in convalescenza, una sera 
tardi su Rete 4. Lo spunto era più che buono: una donna perde il 
figlio durante il parto, il padre decide allora di prendere con sè un altro 
bambino che, invece, ha perso la madre. Col passare degli anni, succedono fatti 
strani e diabolici 
  ... 
				
				
			 
	
			
				
				
				
Quando poco tempo fa mi sono distrutto il disco dati del mio 
sistema, avevo recuperato quasi tutto, perchè bene o male ho 
l'abitudine di masterizzare una volta al mese tutto quello che mi serve. Questa 
sera - mannaggia - vado a scoprire che giustamente ho perso tutti gli script MSBuild che con infinita pazienza mi 
ero preparato per automatizzare un po' certi task che mi interessavano. 
Mi sa che dovrò dedicare un po' di tempo a ricostruirli, tanto sul mio blog 
avevo pubblicato qualcosa, perlomeno le parti salienti e quelle che mi avevano 
causato più difficoltà. Poi, si sa, fatta una... 
				
				
			 
	
			
				
				
				
Da buon appassionato di retrocomputing, ogni tanto punto 
il mio browser sulla categoria di ebay.it dedicata a 
questo argomento, alla ricerca di espansioni, giochi e programmi per il mio 
vecchio home computer, il mitico TI-99/4A. Ho appena letto che il prossimo 
evento si terrà a Branco di Tavagnacco, in 
provincia di Udine, dal 30 giugno al 2 luglio. Ho partecipato negli anni scorsi 
ad altri eventi di questo tipo (soprattutto in Emilia-Romagna) ma mi hanno 
sempre un po' deluso, perchè alla fine mi sono ritrovato tra appassionati di CB, 
di radio antiche, elettronica pura, telefoni anni '30 e roba del... 
				
				
			 
	
			
				
				
				
IntroduzioneFino ad oggi abbiamo 
sempre discusso con un mondo completamente managed, ovvero il cui 
codice è scritto al 100% in linguaggi previsti dal FX (VB.NET e C# in primo 
luogo), e che quindi gira all'interno del CLR. Possiamo però andare oltre, 
e permettere al nostro codice di oltrepassare le normali barriere ed avere a che 
fare con il managed unmanaged, ovvero tutto quello che riguarda codice 
Win32, mondo COM e via dicendo.
Ovviamente, il fatto che sia possibile non vuol dire che sia una cosa 
semplice, nè tantomeno che siamo esenti da rischi. La difficoltà principale è 
saper mappare in memoria gli oggetti... 
				
				
			 
	
			
				
				
				
In molti, giustamente, mi hanno detto che i miei post 
per l'esame 70-536 sono più discontinui rispetto alla mia 
prima serie per l'esame 70-316. Effettivamente, i miei impegni di lavoro mi hanno 
portato via più tempo del previsto e anche se trovo il tempo per studiare un po' 
(ho giusto giusto del materiale su P/Invoke che mi aspetta sul letto), 
ho sicuramente meno tempo per dedicarmi alla scrittura di post.
Spero davvero di poter riprendere a parlare come una volta, perlomeno sugli 
argomenti più importanti come P/Invoke che citavo prima. Rimane da vedere 
qualcosa sulla sicurezza ed altro ancora: avevo fissato l'esame il... 
				
				
			 
	
			
				
				
				
Qualche giorno fa ho scritto un piccolo post per 
cominciare a prendere in considerazione l'idea di poter avere diverse view di 
una nostra custom collection. Giustamente, Corrado ha osservato che sebbene 
avessi creato una classe FaultCollection ed una corrispondente 
FaultCollectionDefaultView, c'è comunque un grande 
accoppiamento fra le due. Una non vive senza l'altra e questo rende il mio 
codice poco riutilizzabile: se voglio creare un'altra view, posso, però devo 
ricompilare e così via. Insomma, volevo migliorare un po' le cose e questa sera 
ho fatto i primi passi. 
L'idea è innanzitutto quella di fornire alla classe 
FaultCollection una classe gemella... 
				
				
			 
	
			
				
				
				
Nel suo articolo su UGIdotNET Marco spiega come installare sul 
proprio PC i Power Toys e 
come sviluppare add-ins per Visual Studio 2005. L'operazione è riuscita 
perfettamente sul mio PC al lavoro, dove ho cominciato a litigare con l'object 
model nel tentativo di integrare il class designer con alcune funzionalità 
che vorrei rendere pubbliche una volta capita la fattibilità. Sul mio PC a casa 
invece qualcosa non è andato bene: sebbene abbia installato i 
suddetti Power Toys, nel mio VS2005 non compare alcun 
progetto di tipo Class Designer Add-in, e non capisco il 
perchè.
Che manchi qualcosa? Ho provato comunque ad aprire il progetto che ho fatto... 
				
				
			 
	
			
				
				
				
Questo è il mio ennesimo post inviato da una locazione piuttosto stramba. Sto scrivendo da 1.000 metri di altitudine, in mezzo agli alberi. Fa un po' freschino, ma per fortuna mi sono attrezzato. Ho lasciato la mia auto a Passo del Penice, mi sono sparato due ore di cammino fino ad arrivare nei dintorni di Pecorara, Cicogni ed altri minuscoli comuni a metà strada tra Lombardia ed Emilia-Romagna. Ho scoperto il Giardino Alpino, una sorta di parco attrezzato da visitare: la cosa triste è che per entrare devo avere il biglietto, ma il paese è davvero troppo lontano per essere... 
				
				
			 
	
			
				
				
				
Anche oggi la giornata di vacanza mi ha fatto 
dimenticare il mio tradizionale OT del venerdì. Ho poco tempo, è venerdì e me ne 
sto andando a fare un giro da qualche parte. Avrei voluto essere in qualche 
località di mare, ma il freddo e il traffico mi hanno fatto desistere.
Avete o no notato che stanno terminando tutti i soliti programmi TV che ci 
hanno tenuto compagnia fino ad oggi? Io sono estremamente contento di non vedere 
più Amadeus e il suo orribile L'Eredità, un quiz di cui ho già 
parlato e che mi ha sempre annoiato per la sua... 
				
				
			 
	
			
				
				
				
IntroduzioneNe avevo parlato un po' 
di tempo fa qua sul mio blog. Se nel nostro domain model abbiamo creato una 
custom collection e poi vogliamo bindarla su una 
DataGridView, tale collection deve implementare l'interfaccia ITypedList. Questa 
interfaccia è di per sè abbastanza semplice: richiede l'implementazione di due 
soli metodi pubblici (GetItemProperties e GetListName). In pratica, il 
primo metodo ritorna un oggetto PropertyDescriptorCollection che rappresenta 
l'elenco delle proprietà che vogliamo bindare come colonne sulla DataGridView. Il secondo metodo ritorna una banale 
stringa con il nome della lista.
Facciamo un esempio pratico. Il class designer vale in questo caso molto più 
di mille parole:
Come è facilmente... 
				
				
			 
	
			
				
				
				
L'altra sera ho acquistato la suite di Acronis Disk Director Suite 
10.0, utile per maneggiare le partizioni degli hard-disk 
senza troppa paura di perdere dati. L'ho già installata sulla mia workstation 
XP, vediamo se mi tornerà utile la prima volta che voglio dare una sistemata 
alla mia LAN. 
La cosa bella è che adesso ho diritto ad uno sconto del 20% sul prossimo 
acquisto: stavo optando per Acronis True Image 9.0, ma ho letto che non è supportato su Windows 
2003. Il mio server invece monta proprio questo OS, per cui non posso prenderlo 
per mettere in piedi quel backup automatico... 
				
				
			 
	
			
				
				
				
Il 1° Dicembre scorso avevo estrapolato alcune 
statistiche, considerando solo quelli che hanno sul proprio blog più di 100 
post. Oggi ho aggiornato la statistica, e ci sono alcune novità.
  
  
  
  
  
  
  
  
  
    
    
    Post
    Commenti
    Media
    Delta Post
  
    Lorenzo Barbieri
    2131
    3491
    1.638198029
    0
  
  ... 
				
				
			 
	
			
				
				
				
I byte che vivono in sistemi 
hardware appartenenti a soci UGIdotNET (chi più, chi meno) sono (comunque) dei 
grandi.
powered by IMHO 1.2
 
				
				
			 
	
			
				
				
				
Voglio fare una classifica della 3-giorni dell'evento Microsoft Visual Studio 
Team System a cui ho potuto prendere parte grazie all'invito di Lorenzo.
  Martedì 30 maggio, dedicata al Team System for Software 
  Developers(unit-testing, code-coverage e dintorni)
  La mattinata del 31 maggio, dedicata alla teoria del buon 
  testing(investire sulla prevenzione del bug, )
  Lunedì 29 maggio, dedicata al Team System for Software 
  Architects(diagrammi vivi per progettare l'infrastruttura 
  distribuita nella quale gireranno le nostre apps)
  Il pomeriggio del 31 maggio, dedicata a test di 
  applicazioni Web(c'è bisogno di ricordare... 
				
				
			 
	
 
                
			 
		 |