|
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...
|