January 2005 Blog Posts

Superficie di contatto

In questi giorni da un cliente mi sono trovato a dover spiegare perchè è cosa buona e giusta creare uno strato di accesso ai dati e perchè è necessario utilizzare abbondantemente stored procedure e affini (se presenti nell'rdbms utilizzato). Sul momento ho spiegato per esteso le varie problematiche che tale soluzione permette di evitare, correggere e prevenire, ma, ora, ripensandoci bene, credo che la cosa potrebbe essere resa molto più chiara e comprensibile (e soprattutto convincente) utilizzando un semplice concetto. Tale concetto è ben rappresentato dall'idea di pensare a delle "superfici di contatto ". Database e applicazioni, applicazioni ed altre applicazioni,...

www.agiledata.org

Bene, sono contento che il post precedente abbia suscitato interesse! Vi ricordo che sul sito www.agiledata.org potete dare un'occhiata ai contenuti del libro prima di acquistarlo (direi che c'è praticamente *tutto* il libro...però per me la carta stampata è ancora insostituibile!) powered by IMHO 1.2

Agile Database Techniques: fatevi un favore, comprate questo libro!

Non è da me fare una pubblicità così marcata a qualcosa, ma questo libro è davvero da leggere. Oggi ho finito di leggerlo (ma ho già in programma la rilettura di alcune sue parti) e ogni singola pagina è una miniera di consigli ed esperienza. Io normalmente mi trovo molto spesso a dover essere l'anello di congiunzione tra database architects e software architects e quindi argomenti quali la convivenza di due paradigmi differenti (come OOD ed il modello relazionale) sono pane di tutti i giorni, cosi come la convivenza con sistema legacy, che, come ben si sa, sono come i protagonisti di...

Picasa 2

E' uscita la versione 2.0 di Picasa, il tool di gestione foto di Google. Le novità più importanti, per quello che mi riguarda, sono la presenza di effetti speciali e di fotoritocco applicabili alle foto, e l'integrazione con GMail per l'invio delle foto stesse. Un'altro strumento interessante è il motore di ricerca interno, che permette, se avete la voglia di mettere una label ad ogni vostra foto, di cercare le vostre creazioni in modo velocissimo. Difetti? Io sento la mancanza di queste cose: 1) Possibilità di avere un gerarchia di album 2) Possibilità di estendere il sistema di esportazione...sarebbe bello poter inviare lo foto...

Flybook: il "palmare" definitivo?

Gironzolando su internet ho trovato un "palmare" che potrebbe essere lo strumento definitivo: Tratto da 3DItalia: "Flybook è infatti un elegante Tablet PC dotato di connessioni wireless di tipo Bluetooth, Wi-Fi e... GSM/GPRS tri-band che vi permetteranno di utilizzare il portatile anche come un eccellente telefono oltre che, al tempo stesso, permettervi un collegamento ad Internet ovunque voi siate senza essere legati ad alcun filo. Più piccolo di qualsiasi altro Notebook al mondo, poco più grande di un Palmare, il Flybook è così leggero (pesa poco più di un chilo!), bilanciato e dalle dimensioni così ridotte 235x155x31 mm), che ha riscritto il concetto...

Secondo articolo sulle Date

Come annunciato nel post precedente, ho scritto qualche riga anche sulla gestione degli orari con SQL Server. Il link per leggerlo è questo:http://blogs.ugidotnet.org/nettools/articles/9560.aspx Buona lettura e non mancate di farmi sapere se gli articoli vi sono piacuti o meno.

Trattare le Date con SQL Server

Visto che la questione si ripropone praticamente sempre ed in modo sistematico, ho scritto un breve articoletto - molto pratico - sulla gestione delle date con SQL Server. Se siete interessati lo potete leggere qui: http://blogs.ugidotnet.org/nettools/articles/9541.aspx

DebugView

Un tool molto interessante, prodotto dai vulcanici SysInternals, è DebugView. Tale prodotto permette di visualizzare in real-time i messaggi inviati al DefaultTraceListener (più precisamente intercetta l'output di alcune API di debug, tra cui OuputDebugString che è utilizzata, come è possibile vedere con Reflector, dal metodo internalWrite che è invocato quando viene chiamato il metodo Write). A volte risulta infatti molto più comodo vedere i messaggi di debug in tempo reale, mentre l'applicazione sta girando, piuttosto che analizzarli al termine della stessa: il tool è prelevabile da qui: http://www.sysinternals.com/ntw2k/freeware/debugview.shtml

Class Normalization

Ieri sono andato avanti nella lettura del libro Agile Database Techniques, che si dimostra ad ogni pagina sempre più bello. Ho scoperto che esiste il concetto di Class Normalization, che è ovviamente è parallelo al concetto di Data Normalization così ben conosciuto a tutti coloro che lavorano con un rdbms. Le regole che esprime sono regole che - secondo me - probabilmente già tutti applichiamo e conosciamo, in quanto mi sembrano "semplicemente" delle regole legate al buon senso, ed, alla fine, si ritorna al concetto fondamentale che le operazioni che agiscono sui dati vanno dove ci sono i dati. Dato che però magari questo concetto...

Become a Generalizing Specialist

Ieri ho speso molto tempo sui mezzi di trasporto (troppo....quando potremo direi anche noi "Beam me up, Scotty" ? ), ma per fortuna sono riuscito a investirlo nella sana lettura del libro "Agile Database Techniques". Uno dei punti che più mi ha favorevolmente colpito - e stupito direi - è che Scott W. Ambler, l'autore, sostiene che per essere Agili è necessario diventare dei Generalized Specialist. E' una cosa in cui ho sempre creduto, e mi sono praticamente sempre trovato in controcorrente , ed ora che lo leggo scritto sul libro di uno degli autori più autorevoli del movimento agile, beh,...

Troppa Fretta!

Come al solito la fretta è cattiva consigliera...ed anche questa volta lo dimostra. Oggi è stata una giornata molto "di fretta" per me (ed infatti tra 30 minuti devo scappare di nuovo), ed a tutti i costi ho voluto infilare nel poco tempo libero che ho avuto a disposizione l'implementazione del controllo FormShield in .Text. (Managggia a me!....quando mi metto in testa una cosa....) Il tutto sembrava funzionare benone, ho fatto dei velocissimi test per verificare che l'integrazione fosse possibile (ho creato un semplicissimo user control, l 'ho messo nello user control PostComment.aspx e via), ma, ora che sto testando più...

HIP per .Text

Sono appena tornato da una mattina densa si relazioni, quindi ho dedicato una mezz'oretta alla risoluzione del problema spam. Ho visto che AndreaB si è gia prodigato in tal senso, ma, tanto per fare un pò di sana concorrenza, ho voluto anche io implementare la mia soluzione. In realtà non ho implementato praticamente nulla, se non il semplice utilizzo di questo bellissimo tool: http://dotnetfreak.co.uk/blog/archive/2004/11/06/166.aspx che, come potete notare è completamente free. (Tra l'altro ne parlo sul prossimo numero di VBJ ) Il risultato, sul mio blog di prova, è questo: Niente male no? Anche questa soluzione non richede la ricompilazione della soluzione .Text, ma solo...

UgiDotText :-D

Ho cominciato a smanettare un pò con .Text per l'implementazione di un meccanismo HIP nei commenti. Ora sono proprio di fretta, quindi lascio giusto due righe per i posteri: 1) I commenti sono implementati come user control, ed il codice aspx si trova in ogni skin 2) Il code-behind dello user control di cui sopra si trova DotTextWeb/UI/Controls/PostComments.cs Ergo, credo che andranno modificate anche le skin (la pagina PostComments.aspx) Ora scappo che sennò il treno parte!    

Stored Procedure o no?

Anche oggi sul ng di SQL Server è stata postata la fatidica domanda: "...ma devo scrivere cosi tante stored procedure"? Si. Non bisogna avere paura di avere molte stored procedure all'interno di un database, non è sintomo di cattiva programmazione nè tanto meno di poca portabilità.Le stored procedure permettono di far sì che lo schema del nostro database sia indipendente dalla logica di business e viceversa. La logica di business (molto più correttamente la logica di accesso ai dati) deve "semplicemente" scegliere qual'è la stored procedure (o query se ipotizziamo di lavorare su un db che non supporta le SP) che deve...

Agile Database Techniques

Finalmente il libro è arrivato! In questi giorni comincierò a leggerlo (tanto più che devo viaggare spesso, quindi potrò impegare il tempo sui mezzi di trasporto in modo ottimale) e vediamo che ne esce. Devo ammettere di essere abbastanza esaltato a riguardo!

Webcasty

Per completare al 100% l'utilissimo post di Lorenzo segnalo anche questo sito: http://www.webcasty.com/ dove è presente un database di tutti i webcast tenuti da Microsoft con il relativo link per poterli scaricare tramite il metedo descritto nel suddetto post.

Data Model Patterns

Approcio Agile e Pattern ovunque, anche per chi deve modellare i database: http://www.bookpool.com/.x/hr9s5wows8/sm/0471202835 e http://www.amazon.com/exec/obidos/tg/detail/-/0932633293/104-4238991-1062343?v=glance sicuramente faranno inorridire i puristi del modello relazionale (e ne conosco almeno un paio ) ma a me questi approci piacciono un sacco!

BUG: Policy "Manage individual subscriptions" implemented incorrectly

Se utilizzate i Reporting Services potreste aver scoperto un piccolo bug (ne ho già parlato alla WPC per chi c'era) che non permette, a chi a sottoscritto una sottoscrizione (:-)), di potersela gestire in modo autonomo (non la vede proprio!)...anche se il ruolo "Manage Individual Subscription" dovrebbe permettergli di farlo. http://groups.google.it/groups?hl=it&lr=&selm=epXhV4qYEHA.808%40tk2msftngp13.phx.gbl  

AgileData: Bringing data professionals and application developers together.

Stavo cercando un tool che mi permettesse di creare dei dati di esempio (verosilimi) con la quale popolare un db di test (mi sa che il tool me lo devo fare....) e sono capitato su questa interessantissima pagina: http://www.agiledata.org/ che, come potete capire del nome, propone un approcio agile allo sviluppo dei database....magari può essere d'aiuto anche per rispondere al problema sollevato da AndreaB nel suo post: http://blogs.ugidotnet.org/penpal/archive/2004/12/29/7934.aspx  

Copyright © Davide Mauri

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski