Technology Experience

Contenuti gestiti da Igor Damiani
posts - 949, comments - 2741, trackbacks - 15120

My Links

News

  • Questo blog si propone di raccogliere riflessioni, teoriche e pratiche, su tutto quello che riguarda il world-computing che mi sta attorno: programmazione in .NET, software attuale e futuro, notizie provenienti dal web, tecnologia in generale, open-source.

    L'idea è quella di lasciare una sorta di patrimonio personale, una raccolta di idee che un giorno potrebbe farmi sorridere, al pensiero di dov'ero e cosa stavo facendo.

    10/05/2005,
    Milano

Archives

Post Categories

Generale

Un byte incontra (affascinato) la NRuleValidator

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ì girò gli occhi velocemente.

Fu così che il byte sbattè violentemente contro un agglomerato complesso di bytes di cui non aveva percepito la presenza. Lo scontro provocò un Exception nel thread corrente, che venne gestito autonomamente dall'OS senza troppe complicazioni. Il byte si riprese immediatamente, riaprì gli occhi e si guardò attorno.

Quello che vide lo sconvolse. Lì nei dintorni era stato costruito un palazzo che fino a qualche tempo prima non c'era. Era un palazzo alto 4 piani, completamente bianco, in netto contrasto con l'ambiente scuro ed asettico circostante. Aveva un solo grande ingresso sulla cima, all'ultimo piano, come fosse un eliporto, dal quale arrivavano ed uscivano stream di bytes di ogni tipo. Alcune parti erano ancora in costruzione, e mostravano impalcature sulle quali altre entità stavano lavorando assiduamente per portare a termine il loro lavoro.
"Chi siete voi? Cosa ci fate qua?" - chiese il byte, rivolgendosi ai bytes che abitavano il palazzo.

"Innanzitutto diamoci pure del tu, che è meglio, che ne dici? Noi siamo la NRuleValidator, e ci occupiamo perennemente di validare gli oggetti che gli strati applicativi ci passano.". La risposta arrivò dal primo byte che formava la class library, come se fosse una sorta di ambasciatore di tutto l'edificio, l'unico che fosse in grado di comunicare all'esterno.

Il byte non capì quasi nulla di quella risposta, perciò - incuriosito - cominciò a tempestare il byte header di domande, nel tentativo di capirne di più.

"Beh, senza offesa, ma è normale che tu non capisca." - sorrise amichevolmente NRuleValidator - "Tu sei solo un byte, un semplice e banale byte. Molto spesso, sai, capita che in altri settori della RAM il .NET Framework crei degli oggetti, esattamente come me, con certe caratteristiche. Questi oggetti, sai, sono formati da un grande numero di bytes, come me o te, che tutti assieme fanno in modo che l'oggetto viva e rimanga sempre intatto." La class library parlò a lungo degli oggetti, fornendo al byte un gran numero di informazioni sul mondo OOP: sull'ereditarietà, ad esempio, o sui costruttori, sui metodi e via, ancora più nel dettaglio, fino ad arrivare ai Delegate e agli eventi, e alla loro mappatura in memoria.

Dopo 0x7500F cicli di clock, la class library concluse il suo discorso.
"Questi oggetti sono moltissimi, uno più complesso dell'altro, ma la cosa più bella è che nell'Aldilà ne creano a bizzeffe, di tutti i tipi. NRuleValidator, cioè io, servo proprio a questo: faccio in modo che un oggetto sia valido, cioè che le sue proprietà abbiano valori coerenti rispetto al dominio applicativo al quale si applica. Semplice, no?"

Il byte assorbì tutte quelle informazioni e ne rimase affascinato. Cominciò a pensare agli oggetti, a tutte le loro varianti, e pensò a come NRuleValidator fosse davvero utile per chiunque.
"Ma come posso sapere come funzioni?" - chiese incuriosito il byte.

"Beh, avresti bisogno di un browser e navigare a questo URL. Qui c'è tutto: ti puoi leggere i sorgenti, scaricarmi, installarmi sul tuo PC e provarmi. Ma questo tu non lo puoi fare, mi spiace." NRuleValidator era davvero dispiaciuta per la situazione del byte, ma non poteva farci niente.

"Un browser??? E cosa diavolo è un browser??? Dove lo trovo?"

Il byte header sospirò, rassegnato. "Basta, dai, per oggi non ho più tempo per te. Ho un oggetto HockeyPlayer da validare, lo vedi laggiù sul bus?". L'header di NRuleValidator alzò un dito indicando un oggetto che arrivava a tutta velocità sul bus dati. Il byte si spostò giusto in tempo per evitarlo: due scontri in una sola sessione di lavoro sono davvero troppe - riflettè tra sè e sè il byte. Lo HockeyPlayer spiccò all'ultimo momento il volo, fino al 4° piano ed entrò dall'eliporto sul tetto dell'edificio.

Il byte osservò la scena sbigottito. Ma si stupì ancora di più quando, dopo 0xF cicli di clock dopo, dal palazzo di NRuleValidator vide uscire 2 oggetti RuleBase associati alla proprietà BrokenRules dello HockeyPlayerValidator.

"Devo scoprire cos'è un browser!" - si propose il byte tutto ad un tratto.
Voltò le spalle al palazzo di NRuleValidator, se ne andò, ma con un gran bel sorriso sulla faccia.

Dedicato a chiunque parteciperà al progetto NRuleValidator!

powered by IMHO 1.3

Print | posted on Saturday, April 22, 2006 6:51 PM | Filed Under [ 010 .bytes. 010 ]

Feedback

Gravatar

# re: Un byte incontra (affascinato) la NRuleValidator

Non ho parole...
Sono commosso! :-) :-)
4/24/2006 10:07 AM | Giancarlo Sudano
Gravatar

# NRuleValidator, avanti tutta!

4/25/2006 10:29 AM | Technology Experience
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET