|  | 
				
                    
aprile 2006 Blog Posts
				
				
				
Drin...Drin..."Ciao, Igor. Senti, vorrei una 
modifica al tuo software di fatturazione.Quando scegli il cliente sulla 
maschera delle fatture, non voglio cliccare sui tre puntini.Io so il codice, 
per cui mi piacerebbe inserire una cosa tipo COD021, ed automaticamente deve 
apparire il nome del cliente. Si può fare? Ma la fai? Ci metti 
tanto?"
Ovviamente, è solo una telefonata virtuale e mai avvenuta. Solo che potrebbe 
essere una cosa interessante da fare.Vediamo come modificare la mia 
applicazione per implementare questa modifica.
Un breve riassuntoNella mia soluzione, ho definito una 
form FormFattura. All'interno di questa form, ho creato un metodo privato 
SetupDatabindings che si... 
				
				
				
Il mio PC ha due unità DVD: un semplice lettore, ed un 
masterizzatore. Non ditemi di usare un'unità sola, perchè non mi sta bene. 
Alcuni videogame non vanno d'accordo con i masterizzatori: anche se inserisco il 
CD/DVD originale, all'avvio mi viene sempre detto che il disco non è valido. 
 Altro esempio di come la lotta alla pirateria a 
volte disturba anche gli onesti. Vabbè, lasciamo perdere. 
Ultimamente, quando inserisco un CD/DVD nel mio lettore, XP mi dà un bel 
blue-screen che non so spiegare.  Ho disabilitato l'autoplay, ma il problema 
rimane. Pensavo di avere un problema hardware, però questa mattina... 
				
				
				
Sto facendo esperimenti su una piccola applicazione 
Windows Forms che possa implementare in qualche modo il meccanismo tale per cui 
l'utente possa annullare le operazioni che fa sui controlli sulla form stessa. 
Immaginate di avere un business object di qualsiasi tipo, che espone 5 proprietà 
di tipo string. Adesso, immaginate di bindare queste 5 proprietà a 
5 TextBox su una Windows Forms.
Ogni volta che l'utente modifica il valore di una TextBox, tale valore viene 
catapultato (!) nella proprietà del business object. Fin 
qua nulla di particolare. Però ora supponiamo di voler dare all'utente la 
possibilità di premere CTRL+Z o dei pulsanti sulla... 
				
				
				
Dramma! Tutto questo poltrire a casa, mi ha fatto 
sfuggire il fatto che oggi fosse venerdì, e quindi è l'appuntamento per il mio tradizionale OT. Beh, anche questo sarà un 
weekend monotono e triste, perchè non poter guidare, non poter muovermi come 
potrei (e vorrei) mi costringe in casa, a vedere qualcosa alla TV. E siccome ho 
letto polemiche sugli OT, sulle certificazioni, sui post, per favore, non 
disturbatemi: il blog è assolutamente territorio privato, per cui ognuno di noi 
ha diritto di scrivere quello che vuole, fino a quando non offende gli altri e 
non limita la libertà altrui.
Vedete,... 
				
				
				
Il libro sul data binding sta dando i suoi piccolo 
frutti. Ho migliorato parte del codice del mio sw di fatturazione, con una 
piccola (e banale) chicca a cui sinceramente prima non avevo pensato. Questa 
chicca, a chi dovesse interessare, è spiegata a pag.114 di Data Binding with Windows Forms 
2.0. Così, chi ce  l'ha, può dargli 
un'occhiata...vero, Marco? 
Com'era il mio codice prima...Dunque, vedrò di essere il 
più breve possibile. In ogni Windows Form del mio sw, faccio vivere 
un'istanza di un oggetto, dipendentemente dalla form stessa. Sulla form degli 
articoli, c'è un oggetto currentEntity di tipo Articolo. Sulla form delle... 
				
				
				
Il 1° Giugno, alle ore 
10:00, andrò a sostenere l'esame 70-536. 
In tempo per riprendere a lavorare, per ripassare un po' di roba, per vedere le 
cose che mancano, per farmi venire un po' d'ansia.
E, credetemi, se lo passo, io salto dalla gioia, e ve lo dico 
anche, alla faccia delle polemiche che ogni tanto 
imperversano sul blog.  Su questo discorso, mi allineo con Lorenzo, 
sinceramente: quando posto sul mio blog, so di rivolgermi ad un mio gruppo di 
amici e quindi mi viene naturale raccontare le cose che mi succedono, sia belle 
che brutte. Tra queste cose, ci sono anche i miei esami, per... 
				
				
				
Ve l'avevo promesso che avrei ricominciato. Dopo questa 
lunga pausa, dovuta un po' a motivi di lavoro e salute, vediamo oggi di 
riprendere la mia serie di post per l'esame 70-536.
Questa ripresa dei lavori vede come protagonista la class Thread ed affini, ovvero tutte 
quelle classi definite nel namespace System.Threading che ci permettono di eseguire 
operazioni in modo asincrono. Ne avevamo già parlato in passato quando avevamo 
trattato il nuovo componente BackgroundWorker: con nuovo, 
intendo con il FX2.0. Il BackgroundWorker internamente fa ovviamente uso di 
thread secondari, e risolve la maggior parte delle problematiche riguardanti la 
gestione della UI. Come... 
				
				
				
Avevo cominciato a scrivere come di consueto i miei post 
per il superamento dell'esame 70-536. Poi si sono accumulati alcuni problemi di salute 
ed  impegni di lavoro, che hanno bloccato il mio consueto trend di posting, 
che mi vedeva bene o male ogni 1-2 giorni scrivere qualcosa.
Oggi pomeriggio però ho intenzione di riprendere i lavori in corso. Prima 
voglio fare un punto della situazione di quello che manca e ripassare 
quello che ho già studiato. Per avere le idee più chiare, solo per quello. Anche 
perchè rispetto allo studio sul 70-316, questo è stato un po' più movimentato. Inoltre, 
non avendo... 
				
				
				
Ho provato a googlare alla ricerca di un tool che mi 
aiutasse a cancellare i recent projects che VS2005 memorizza nel 
registro. Ricerca inutile, per cui mi sono dovuto cancellare a mano tutte le 
voci in HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\ProjectMRUList. 
Odio quell'elenco, o perlomeno odio pensare alla sporcizia del registry che 
provoca. Per cui, a mali estremi, estremi rimedi.
Ho cominciato a scrivermelo da solo, questo tool. Con una banale Windows 
Form, viene mostrato l'elenco, evidenziando in modo particolare questi progetti 
o soluzioni che per un motivo o per l'altro non esistono più. Se dovesse 
interessare a qualcuno, fatemelo sapere, che lo pubblico da qualche... 
				
				
				
No, non è una nuova saga fantasy, ma è la cronaca 
del mio pomeriggio.Qualche tempo fa ve l'avevo detto: io e mio fratello 
stiamo lavorando assieme su un progetto molto, molto custom, per un 
concessionario di auto-rimorchi nella nostra zona. Avevamo cominciato a lavorare 
assieme sul domain model da implementare nell'applicativo. Il tutto è stato 
creato inizialmente con il class designer di VS2005: se vi interessa il 
risultato, potete dare un'occhiata qui.
Ho voluto utilizzare NHibernate come engine di persistenza, 
senza più diventare matto a programmare da zero un data provider corretto. Ho 
creato inoltre un progetto per lo unit-testing, per verificare... 
				
				
				
Rinchiuso in casa causa convalescenza, mi sto gustando 
(ehm...mentre leggo il mio libro sul data binding) la serie Karate 
Kid che sta trasmettendo Italia 1. Beh, insomma, i primi capitoli della 
saga li avevo visti, ma il quarto proprio no. L'indimenticabile maestro 
Miyagi questa volta non allena il mitico Daniel San, bensì una ragazzina con i 
classici problemi familiari di una quindicenne da film (orfana di entrambi 
i genitori, vive con la nonna ma il rapporto non è dei migliori, miglior amica 
di un'aquila ferita , etc. etc.).
Ho guardato 'sta ragazzina e mi sono detto chi diavolo fosse, era un viso che 
avevo... 
				
				
				
Mi è piaciuto il richiamo alla security di Raffaele di questa mattina, 
perciò ho deciso di installare subito l'SP1 per SQL Server 2005. Nella mia LAN 
ne ho installati due: una Express Edition sul mio PC personale, una Developer 
Edition sul server locale. Quest'ultimo è un po' più missional critical: su di 
esso, girano i miei database più importanti (i backup di qualche cliente, ed 
altro ancora), c'è installato IIS, SharePoint...insomma, un po' di roba 
interessante. Ma rischio lo stesso: scarico l'SP1 e lo installo su, con 
tutti i pericoli che corro, che pensandoci bene non sono poi tanti perchè 
comunque ho... 
				
				
				
Il 19 Aprile scorso avevo ordinato da questo URL il Partner Resource DVD 
2006, che mi è arrivato ieri pomeriggio (5 giorni!). Il kit, 
completamente gratuito, è composto da 2 DVD: uno contiene la trial di VS2005 
Professional Edition, mentre il secondo - che magari guarderò meglio nei 
prossimi giorni - contiene tutta una serie di tool, kit, SDK di terze parti che 
estendono l'ambiente Visual Studio.
Altra nota sull'estendibilità di VS2005: su gotdotnet.com c'è questo progetto, che io avevo scaricato da tempo. Sono 
in pratica i Power Toys per VS2005, che estendono il class 
designer di default. Magari potreste trovarlo... 
				
				
				
Terra, data astrale 25 Aprile 2006. Italia.
Sono stato un po' latitante sul blog, negli ultimi giorni. Non poter scrivere 
sulla tastiera bello comodo, seduto davanti al PC, mi porta davvero a sbagliare 
una quantità assurda di lettere. Bisognerebbe quasi fare uno studio in merito, 
cioè se l'abitudine ad una certa posizione porta anche ad una sorta di 
istintività nello scrivere. Se questa posizione viene a mancare, ecco che anche 
la capacità di digitare più o meno veloce va a farsi friggere. 
Beh, comunque, anche se mi avete visto postare un po' poco, ho lavorato 
dietro le quinte. Io e Giancarlo... 
				
				
				
0x78FFA0.Questo comparve sul bus address del 
sistema. Il byte reagì immediatamente, balzando sullo stream di dati insieme a 
tutti gli altri. Pochi cicli di clock dopo, il byte stava percorrendo un bus 
litoraneo: alla sua sinistra si ergeva una parete altissima, ricoperta di 
informazioni sparse a casaccio su tutta la superficie. Alla sua destra, invece, 
uno strapiombo che finiva chissà dove. Mentre correva, il byte guardò e provò un 
brivido al pensiero di cadere giù. Lo strapiompo finiva sulla RAM, ma il byte 
non lo poteva sapere, perchè un forte senso di vertigine gli impedì di guardare 
a lungo, così... 
				
				
				
Ieri il mio intervento di ieri è durato 2 ore. Una 
grande ansia, l'attesa stressante, qualche complicazione, uno svenimento, ma per 
il resto tutto bene. Senza fare nomi, che sono davvero tanti ed oltretutto non 
tutti appartengono a UGI, desidero ringraziare tutti coloro che mi 
hanno fatto gli auguri, che mi ha mandato in bocca al lupo, eccetera 
eccetera.
Adesso sono a casa, un po' frastornato, avrò delle visite di controllo nei 
prossimi giorni, ma credo che il peggio sia passato. Per dirla alla 
lodigiana...sperem!!!...
powered by IMHO 1.3
 
				
				
				
IntroduzioneTrovo spettacolare 
la Janky.Validation del buon Giancarlo. Come 
ha spiegato lui stesso in passato, la Janky.Validation è una libreria che ci 
permette di validare i nostri business object in un determinato e particolare 
contesto. In pratica, ogni contesto di validazione contiene una o più 
classi derivate da RuleBase, che esprimono per l'appunto le regole che devono 
essere rispettate.
La cosa scomoda è che tutto va fatto via codice. Quindi, per esempio, se 
volessi validare un oggetto Articolo, nel mio software di 
fatturazione è scritto una classe che contiene:
this.Rules.Add(new StringLengthRule(_controls[0], "Inserire un codice da 1 a 10 caratteri!", _articolo.Codice, 1, 10));this.Rules.Add(new StringLengthRule(_controls[1], "La denominazione è obbligatoria!", _articolo.Denominazione, 1, 255));this.Rules.Add(new ValueInRangeRule(_controls[2], "Il costo unitario è obbligatorio!", (double)_articolo.CostoUnitario, 0, 50000, ComparisonType.Greater, ComparisonType.LesserOrEqual));this.Rules.Add(new ValueInRangeRule(_controls[3], "Secondo le leggi in vigore, l'IVA è sempre al 20%!", (double)_articolo.Iva, 20, 20, ComparisonType.GreaterOrEqual, ComparisonType.LesserOrEqual));
Questo codice è inserito in una classe ArticoloValidator, 
derivata dalla ValidationContext della Janky.Validation. Anche il... 
				
				
				
 No, non c'è alcun errore, questo è 
proprio un OT del giovedì. Prendetelo pure come un OT del venerdì in anticipo. 
Non l'ho numerato, perchè rimarrà unico nella storia del mio blog. Ho deciso 
così, perchè domani ho proprio paura che non avrò nè tempo, nè voglia di 
mettermi davanti al PC. E' dal 22 Novembre 2005 che aspetto la giornata di 
domani: non ho voglia di raccontarvi i retroscena di questa data, lo farò solo a 
chi si dimostrerà valoroso (un po' come le prove finali di Indiana Jones e 
l'Ultima Crociata). 
Per dirla breve, domani mattina alle 7... 
				
				
				
Un piccolo tip che magari vale la pena pubblicare su 
UGIdotNET. Se avete la necessità di rilevare tutti i tipi definiti in un 
assembly, lo si può fare banalmente tramite Reflection.
public static List<Type> GetAllAvaiableRules(){    // Type classRuleBase = typeof(RuleBase);    List<Type> ret = new List<Type>();    Assembly janky = Assembly.GetExecutingAssembly();    Type[] all = janky.GetTypes();    for (int i = 0; i < all.Length; i++)        // if (all[i].BaseType.Equals(classRuleBase))            ret.Add(all[i]);    return(ret);}
Questo blocco di codice ritorna una List<Type> definiti nell'assembly 
corrente. Nulla di particolarmente complicato. La cosa interessante è che 
possiamo ottenere l'elenco dei tipi che ereditano da una classe base: basta 
discommentare le due righe. La prima dice qual'è il tipo della classe 
base. La classe Type espone una proprietà 
BaseType che ci dice per l'appunto qual'è il tipo che cui 
deriva. Basta un semplice if ed il gioco è... 
				
				
				
Oggi è la giornata dei libri su .NET . Sul suo blog, Chris Sells ci avvisa che il suo libro 
Windows Forms 2.0 Programming 
uscirà la prima settimana di maggio. Notizia che non mi fa intristire di sicuro, 
se non che ho scoperto che Amazon fa una particolare offerta. Si può acquistare 
l'accoppiata Windows Forms 2.0 Programming + Data Binding with 
Windows Forms 2.0 ad un prezzo speciale, 69,28 dollari contro i 109,98 
se invece si acquistato separatamente.  Per me ormai è troppo tardi, voi invece 
- che siete ancora in tempo - non pensateci su due volte: acquistateli 
senza battere ciglio!
Buona lettura a tutti!
powered... 
				
				
				
Pochi minuti fa ho ricevuto la spedizione da Amazon.com di 
Data Binding with Windows Forms 
2.0. Sono felice come una Pasqua.  E pensare che ho avvisato qua nella mia 
azienda un sacco di colleghi per ritirare il libro al posto mio, perchè pensavo 
che arrivasse quando io sarei stato assente per qualche motivo. Inoltre, 
l'arrivo era previsto per i primi di maggio...ed invece...eccolo qua nelle mie 
belle manine!!!! Nella spedizione mi sono fatto arrivare anche uno 
dei volumi che compongono il GdR di Star Wars ed un'altro sull'antica 
Roma per cui invece impazzisce mio fratello. 
Evviva!!! Avrò un bel po' da leggere, allora,... 
				
				
				
Sono nelle fasi iniziali di un nuovo progetto Windows 
Forms che mi occupa il tempo libero. Invece di analizzarlo, studiarlo ed 
implementarlo da solo, questa volta sono affiancato da mio fratello 
Omar. Ieri sera, mentre il Milan dominava a tratti la partita, ma nel 
frattempo si beccava un gol, eravamo davanti al mio monitor 19" a studiare e a 
vedere un po' in che modo tirare in piedi il domain model 
dell'applicativo. Tale applicativo gestisce la vendita di camion/rimorchi/simili 
per un noto concessionario di Lodi, che è uno dei più grandi del nord 
Italia.
Lavorare in due su un progetto, dicevo, mi permette... 
				
				
				
Oggi avrei dovuto fare la classica gitarella fuori 
porta, a visitare una bella villa romana da qualche parte a Desenzano sul Garda. 
Un po' il maltempo, un po' il timore di trovare un traffico pauroso 
sulle autostrade, mi hanno fatto desistere.
Però, devo dire che ho avuto il mio bel daffare. Come mi ero presupposto venerdì pomeriggio, nel weekend ho davvero lavorato su 
tante tecnologie diverse che prima di oggi avevo solamente guardato 
sommariamente, giusto per capire cosa facessero o solamente per arrivare fin 
dove mi bastava. E non è uno scherzo: ho visto talmente tante cose che non so da 
dove cominciare.... 
				
				
				
Rispettate le Leggi sui Bytes, leggete 
cosa può succedere al vostro codice.
byte[5] si allontanò dai byte[] con cui era 
arrivato fino lì. Gli altri lo avevano notato: negli ultimi 0xA3DD8 cicli 
di clock del sistema, era diventato più cupo, silenzioso ed introverso.
byte[5] sempre più spesso si ostinava a non cooperare 
con gli altri. Nonostante i tasks di sistema gli chiedessero in continuazione il proprio patrimonio genetico, alla scopo di portare 
avanti con successo tutti i processi, byte[5] ritornava 
sempre e comunque null. La CPU gli chiedeva di 
trasferirsi da una cella all'altra, ma byte[5] rifiutava 
e se ne andava a spasso per il... 
				
				
				
Un byte si 
dice espansivo quando esegue autonomamente 
metodi di altri oggetti per comunicare.Un byte si 
dice introverso quando - sebbene istanziato 
e valorizzato nel codice - ritorna sempre e comunque null.
powered by IMHO 1.3
 
				
				
				
Ok, prometto che dopo non ne parlo più. Siccome però ho 
scattato alcune foto dei Community Days con il mio Nokia, le metto on-line per 
condividerle. La qualità non è granchè, d'altronde si parla sempre di foto fatte 
da un cellulare, inoltre non mi sono guardato le impostazioni con cui le ho 
scattate.Ci sono anche 4 filmati di Davide Mauri e della sua sessione su 
Reporting Services. 
Durante l'aperitivo [1]
Durante l'aperitivo [2]
Brindisi tutti assieme al ristorante
Durante la cena [1]
Durante la cena [2]
Durante la cena [3]
Foto - Reporting Services con Davide Mauri [1]
Foto - Reporting Services con Davide Mauri [2]
Foto -... 
				
				
				
Quando si partecipa ad eventi come i classici workshop UGI, 
oppure ad eventi inediti come i Community Days, si viene sempre soverchiati dalla mole 
di dati a cui si viene sottoposti: Fabio e mondo 
mobile, Corrado con WPF e Davide con Reporting Services mi hanno interessato parecchio. 
Nonostante una lunga parentesi di ASP-classic, per il resto sono sempre 
stato uno sviluppatore desktop-side. Ritengo quindi che le sessioni 
indicate sopra siano state per me la parte più interessante, per lo meno nel 
breve/medio periodo. La domanda che mi sono posto oggi è: quando metteremo 
davvero in pratica quello che abbiamo appreso durante la due-giorni?... 
				
				
				
La pagina relativa ai Community Days è già stata 
aggiornata con tutte le slides e le demo che abbiamo visto nei due giorni 
precedenti. Sono inoltre felice di annunciare che se 
scaricate la splendida demo su Reporting Services di Davide, 
in realtà scaricate anche la mia applicazione di 
fatturazione con cui vi ho tartassato da un po' di tempo. Non 
sto qui a specificare che in realtà io ho avuto il materiale in anteprima dallo 
stesso Davide.  Che bella soddisfazione! Piccina 
piccina, nulla di che, roba di poco conto, però, insomma......lasciate stare, io sono super contento!
powered by IMHO 1.2
 
				
				
				
Ehm, solo a me Microsoft sta facendo 
spamming? Ogni 10 minuti circa, ricevuto 
un'email con "grazie per aver partecipato al webcast", solo che si riferisce ai 
webcast di gennaio!  Mah. Vabbè, a parte questo...parliamo di 
cose serie. Si ritornerà a lavorare attivamente martedì, per il ponte di Pasqua. 
Per chi fa un banale lavoro da dipendente, questa è la routine. Ma io ho almeno 
3-4 progetti su cui lavorare, e credo che mi darò un bel daffare: non sto qui a 
dilungarmi, perchè questo è il mio tradizionale post OT.
Ho sentito dire che ci sarà un brutto tempo, almeno dalle... 
				
				
				
Mi sento di dare un 10 pieno a questi Community Days. 
Sono stati due giorni favolosi in ogni senso. Sessioni grandissime, di tutto 
rispetto, Compagnia ottima, come al solito direi, davvero molto divertente ed 
amichevole. Vabbè, durante la cena io e Lorenzo ci 
siamo massacrati, ma era un massacro amichevole e costruttivo. 
Non posso che ringraziare Davide Mauri 
che nella sua sessione di Reporting Services ha usato la mia applicazione di 
fatturazione come demo. Davvero, non ho parole per esprimere a sufficienza 
la mia felicità: ti dovrai accontentare di un GRAZIE in stampatello maiuscolo. 
Non posso che salutare tutti coloro che... 
				
				
				
Avevo pensato di non bloggare, ad essere sincero: sono 
arrivato a casa qualche minuto fa, a bordo della mia 500 alla quale ho dovuto 
anche far benzina (grazie Andrea per il consiglio sul distributore! ). Però, cavolo, mi sono detto...come si fa a non 
bloggare quando, appena entrato in camera, mi ritrovo sul letto il pacchetto del 
mio MSDN Subscription arrivato oggi mentre io non c'ero? 
Toh, così imparate a dirmi che ho preso la versione sbagliata!  Se volete sapere qualcosa di più su 
questi due community days, aspettate domani sera: preferisco fare una recensione 
complessiva delle due giornate. Di sicuro, la prima... 
				
				
				
L'altra sera ero alla ricerca di un software per Pocket 
PC che mi potesse far leggere i blog anche senza stare davanti al mio PC. Ho 
trovato Pocket RSS: prima usavo una versione vecchia - 
credo fosse la 1.x - mentre adesso è uscita la 2.1.6. E' davvero bella e molto 
funzionale. L'unica cosa che mi spiace, ma deve essere un problema del blog di 
UGI - è che non vedo da nessuna parte l'autore del post.  Io lo riconosco dall'URL del post, 
però...insomma, così non va. Non è freeware, costa poco più di 5 dollari, ma 
secondo me ne vale... 
				
				
				
Nel giorno del primo compleanno del mio blog, sono 
impegnato con un corso su SQL Server 2000 internamente all'azienda dove faccio 
consulenza. Inutile dire che ho poco tempo per essere on-line: ci vedremo 
direttamente domani ai Community Days. Mi dispiace molto per Rosalba, che non ci sarà, perchè ci tenevo a conoscerla, 
ormai è una UGIdotnettiana a tutti gli effetti. Pazienza - come dice lei - sarà 
per la prossima volta!
Se nel parcheggio vedete una Fiat 500 rossa, sono io, chiunque voi siate, 
salutatemi pure!!! 
powered by IMHO 1.2
 
				
				
				
Mi capita spesso di vedere servizi nei TG dove 
praticamente ti mettono al corrente di manifestazioni/fiere/convegni/eventi 
vari ormai quando sono terminati. Seguo spesso, quasi per caso, TG2 Motori 
o TG2 Costume e Società, dove dicono "si è appena concluso questo", 
oppure "ieri c'era il rally di Sanremo". Odio quando mi succede così, perchè magari ci 
sarei voluto andare, e - per mia ignoranza 
- so le cose quando oramai è troppo tardi e non ci posso fare 
nulla!
Bravo invece a Lorenzo che la mattina ci avvisa del suo webcast del pomeriggio.Mi sono appena 
registrato! 
powered by IMHO 1.2
 
				
				
				
Qualche mese fa vi avevo reso partecipi del mio acquisto 
sul mio cellulare, il Nokia 6630. Era il 24 Novembre dell'anno scorso - pensavo 
fosse passato meno tempo, sinceramente.
Venerdì sera sono andato all'Europlex di Pioltello per vedere "V per 
Vendetta". Quando sono entrato in sala, il Nokia 6630 era lì con me, perchè 
ricordo di averlo spento prima dell'inizio del film. Al momento di uscire, mi 
infilo il giubbotto, ed il Nokia non si trovava più. Abbiamo chiamato la guardia 
notturna, abbiamo perlustrato la mia poltrona in lungo e in largo, abbiamo 
controllato i posti a fianco. Niente, niente di... 
				
				
				
"44 gatti in fila per 3, con il resto di 2!", 
diceva una popolare canzone di qualche anno fa.Cosa c'entra? Nulla, 
altrimenti che OT sarebbe? 
Sono un single felice. Lo so, sembra una frase fatta, una di quelle 
frasi che ogni tanto bisogna dirsi per spiegare a noi stessi la nostra 
situazione. D'altronde, non posso fare altro che pensare che la vita di ciascuno 
di noi può essere rappresentata da una torta, il cui totale è 100%. Se avessi 
una dolce metà, questo 100% andrebbe spezzettato, andrebbe suddiviso 
con lei. Sarei felice di farlo, mi pare ovvio, ma non posso... 
				
				
				
Impegni di lavoro piuttosto urgenti, progetti con 
scadenza ravvicinata, altre questioni da concludere, hanno bloccato - ahimè - la 
mia serie di post sull'esame 70-536. Siccome ci tengo e mi piace, mi impegno dalla 
settimana prossima è ricominciare come ai vecchi tempi. Avrò sicuramente due 
giorni di offline, corrispondenti ai Community Days del 12 e del 13 
aprile prossimi, ma per il resto ho intenzione di concludere gli ultimi temi che 
rimangono da sviscerare. Per far felice me, per far felice voi! 
Ci sarebbe anche da fissare la data del mio esame 70-536, ma un banale 
problema di salute mi impedisce una... 
				
				
				
L'unico patrimonio genetico proprio di un byte è il valore che esso contiene: due 
bytes con lo stesso valore hanno lo 
stesso patrimonio genetico, e di 
conseguenza tendono a reagire - in un'analoga 
situazione - con la stessa modalità.
powered by IMHO 1.2
 
				
				
				
Dice Chris Sells:
Genghis is a set of extensions built on top of .NET and integrated with 
WinForms to provide application-level services in the same flavor as the 
Microsoft Foundation Classes.
Perchè non crederci? A questo URL su GotDotNet potete trovare l'ultima 
release di Genghis, rilasciata lo scorso 22 Marzo. ComboBox con le immagini ed 
auto-completate, controlli di tutti i tipi, molto codice da leggere, e 
diverse classi helper da usare direttamente nelle nostre applicazioni 
(CursorChanger, FolderList, ProgressBar gradienti, etc.). Ho intenzione di 
guardarmi con attenzione la classe WizardSheet che come dice il 
nome ci permette di creare autocomposizioni con - spero - il... 
				
				
				
Qualche giorno fa ho postato una mia piccola classe in 
grado di aggiornare un controllo con l'ora corrente, sfruttando un thread 
secondario. Questa mattina ne ho scritto una versione migliorata e più 
funzionale. Ho sfruttato diverse tecniche .NET, come delegate, eventi e 
anonymous method.
Per descriverla, preferisco cominciare alla rovescia, ovvero farvi vedere con 
la utilizzo sulla mia WF.
private void FormPadre_Load(object sender, EventArgs e){    updater = new CurrentTimeUpdater(1000);    updater.OnCurrentTimeChanged += delegate(System.Object o, CurrentTimeEventArgs ea)    {        this.BeginInvoke(new WriteCurrentTimeDelegate(writeCurrentTime), ea.CurrentTime);    };    updater.Start();}
Il costruttore della CurrentTimeUpdater accetta un membro di 
tipo int che esprime ogni quanti millisecondi deve 
essere sollevato l'evento OnCurrentTimeChanged (nell'esempio 
qui sopra 1 secondo). Notate l'uso che ho fatto degli anonymous method: 
sull'evento associo un handler in-line nel codice, senza 
dichiararne esplicitamente il membro... 
				
				
				
Solitamente, è bello vedere una persona sorridere, 
perchè un sorriso comunicare felicità, gioia.Questa sera il Milan ha 
passato il turno. Da milanista, ma da Italiano, ma soprattutto da coglione, sono 
un po' triste, perchè il nostro cosiddetto Presidente 
del Consiglio - magari - starà sorridendo. Beh, caro Presidente, c'è poco 
da ridere, anche se lei vive nel suo mondo e non se ne accorge.
Il Milan avrà anche vinto, ma l'Italia va a rotoli. Se non va a rotoli - mi 
creda - potrebbe andare sicuramente molto meglio. Io non posso sinceramente 
credere che uno come lei rappresenti il nostro Bel Paese all'estero.... 
				
				
				
Ho ricevuto alcuni contatti via e-mail e via Messenger di 
alcune persone interessate a vedere il mio software Casting 
Manager, probabilmente uno degli ultimi software scritti da me in 
Visual Basic 6 (l'altro è Dog'n'Cat, un software per veterinari rimasto un 
po' a metà). E' l'unico software tra l'altro che non ha una pagina dedicata sul 
mio sito ufficiale: non ho mai avuto tempo per farla. 
Pazienza!
Beh, questa sera sono riuscito a ributtarmi nel mio mondo 
pre-managed. Ho tirato su una macchina con Virtual PC - che ho 
cominciato a preparare ieri sera - e ho installato il minimo indispensabile... 
				
				
				
Ho cominciato a scrivere questo post mentre la mia 
connessione Web va e viene.  Ieri sera, mentre io e mio fratello 
discutevamo su perchè una classe va scritta in un certo modo, su come 
implementare un domain model, su perchè è meglio creare proprie classi custom 
per fare determinati lavori, ho avuto un sussulto.
Marco ci ha detto poco tempo fa come implementare l'interfaccia 
ITypedList su una custom collection per comunicare al FX 
come questa collection deve essere bindata ad una DataGridView (DGV). 
Implementare questa interfaccia significa sostanzialmente scrivere due metodi 
pubblici, che il FX esegue la prima volta che viene richiesto... 
				
				
				
Non ho capito esattamente da che momento, ma il mio 
Windows mi dà un bel blue-screen quando inserisco un CD nel lettore DVD. Credo 
sia l'autoplay: questo link spiega come disabilitarlo senza software di 
terze parti, senza entrare a mano nel registry, senza troppe complicazioni.
Stasera lo provo e vi faccio sapere!!!
powered by IMHO 1.2
 
				
				
				
Negli anni 2003-2004 ho lavorato in una piccola 
software-house a Milano. Per "piccola" intendo 3 sviluppatori, 1 segretaria, 2 
venditori, 1 capo. Uno dei posti peggiori in cui abbia mai lavorato. E' stato - 
professionalmente parlando - un periodo pessimo: tariffa giornaliera molto 
bassa, discussioni e litigate quotidiane, sballottato da una parte all'altra 
d'Italia per fare le demo del software che sviluppavamo, preparazione di decine 
di CD d'installazione senza una procedura automatica, accuse continue per aver 
cancellato il file xyz dal server, aperture sistematiche di SourceSafe 
per andare a chiedere a Tizio-Caio-Sempronio la motivazione di una certa 
implementazione a frmValuta (si... 
				
				
				
Keyzard, il mio piccolo gioco creato ormai 
un paio d'anni fa, è tornato ad animare la mia domenica pomeriggio. Era nato un 
po' come una sfida, creare con Visual Basic 6.0 un gioco ovviamente non certo 
all'avanguardia, ma comunque capace di far divertire e sorridere. Per crearlo, 
mi ero basato sulla stessa idea di un vecchio gioco che avevo sul mio primo 
computer, il TI-99/4A. Il gioco si chiamava - con molta originalità - 
Far West e si trattava fondamentalmente di un duello fra due 
pistoleri. Il cattivo sparava delle lettere verso il buono. Il giocatore, per 
rispondere al fuoco, doveva... 
				
				
				
Nel mio (ormai famoso, dato che tutti mi chiedono notizie) 
software di fatturazione, ho aggiunto ieri sera una bella StatusBar, nel bordo 
inferiore della mia Windows Form con IsMdiContainer = true. Questa StatusBar non fa nulla di particolare, solo 
visualizzare l'ora corrente in basso a destra. Solo che l'ora va continuamente 
aggiornata perchè il tempo, non è una novità, passa e non si ferma mai.
Stamattina quindi ho creato una piccola classe 
CurrentTimeUpdater che in modo asincrono, e sfruttando un Timer 
interno, mi permette di aggiornare continuamente l'ora sul WF. Il vantaggio di 
questa soluzione è che il tutto gira in... 
				
				
				
Non accettare mai bytes da 
thread sconosciuti.
Se il byte sta per essere eseguito, assicurarsi che il suo thread di 
appartenenza sia identificato e non sia sconosciuto. Se il byte sta per essere - 
più generalmente - memorizzato in un'area di memoria, assicurarsi che la 
suddetta area appartenga e sia sotto il controllo di un thread ben 
identificato.
powered by IMHO 1.2
 
				
				
				
Questa mattina, alle 10, mi ero accordato con un'agenzia di modelle a Roma per fare la demo di un mio software (Casting Manager). Avevo pensato di usare Messenger, che ha la funzionalità di poter condividere un'applicazione tra due interlocutori. Purtroppo, l'operazione è fallita, perchè una causa non meglio precisata (firewall, Service Pack 2 di XP, Norton Internet Security, altro) non ci permetteva di inizializzare correttamente lo sharing dell'applicazione. L'errore era un fantomatico "Timeout nella connessione SIP". Pazienza, ma veramente un grande peccato, perchè ancora una volta la troppa sicurezza mi ha danneggiato. Ancora una volta, la mia regola è stata rispettata,... 
				
				
				
Ovviamente è solo una battuta!Questa mattina ho 
avviato Visual Studio 2005 per correggere alcuni bug e per rispondere 
velocemente a qualche domanda con chi stava dall'altra parte del mio Messenger. 
 Ho doppio-cliccato sull'icona che ho nella mia 
toolbar, ed ho aspettato qualche secondo. La risoluzione del mio desktop è 
1600x1200, per cui ci ho messo un po' prima di trovare un ammasso informe di pixels in alto a sinistra, con l'IDE 
di Visual Studio. Ho fatto uno screenshot, la cui immagine è precisamente 
200x200:
Cavolo, ridotto in queste condizioni, VS2005 potrebbe starci anche sul mio 
Pocket PC, o sul mio Nokia.
powered by... 
				
				
				
Ci sono un po' di persone che mi chiedono notizie del mio programma di 
fatturazione. Ma tu pensa, manco fosse l'uscita di Windows Vista! Una mia 
amica, che è finita casualmente sul mio blog, si è addirittura proposta di 
testarlo quando l'avessi finito.  Beh, insomma, ho cominciato intorno al 12 marzo, ed oggi (ancora per 
poco) è il 31. Lo posso considerare terminato: devo disegnare una finestra di 
About decente e devo passare una bella giornata a fare test.  Magari sfrutterò un po' l'amica di cui parlavo 
sopra, eh eh eh!!!
Non posso dire che si tratta di 19 giorni di sviluppo: non... 
 |