Spazio occupato da tabelle heap su SQL Server

Ho appena scritto un post sul blog in inglese dove spiego un problema veramente curioso che ho dovuto risolvere oggi. In breve: su una tabella heap, se si cancellano e poi inseriscono righe, lo spazio delle righe cancellate non viene recuperato (tranne che in alcuni casi particolari). La cosa può portare a problemi di spazio su disco e/o di prestazioni molto lente.

Per fortuna, questo comportamento è descritto in un articolo di knowledge base: KB 913399.

Off-topic: quando il blog fa la notizia, anche in Italia

Il mio blog è nato nel 2003, anche se i primi esperimenti li avevo fatti già nel 2002. All'epoca il fenomeno dei blog era agli albori, in 5 anni quello che era uno strumento un po' di nicchia è diventato uno strumento di massa, usato per creare contenuti di ogni tipo, relegando i blog "tecnici" (come il mio) a una piccola nicchia.

Negli USA è già qualche anno che i blog "aziendali" sono una realtà consolidata (tanto che ormai esistono anche policy aziendali in alcune corporation rispetto al loro uso) e come tale viene usata anche per "tastare il polso" dell'azienda. Non parlo di blog istituzionali, ma di quei blog creati da dipendenti (a volte in forma anonima, a volte no) per parlare della loro azienda vista dall'interno.

In Italia, per una questione più culturale che di massa critica, questo fenomeno è ancora poco diffuso. La mia citazione di "questione culturale" è esemplificata da un episodio accaduto oggi, che probabilmente passerà più inosservato di quanto avrebbe potuto visto il periodo ferragostano. Oggi Repubblica ha pubblicato un articolo che parla del blog di un assistente di volo di Alitalia, con tanto di foto catturate dal blog stesso. Già nel 2005 mi era capitato di tirare in ballo il rapporto tra blog e testate giornalistiche in un caso relativo a questioni più "tecniche". Da allora le cose sono migliorate, se non altro perché è diventata consuetudine anche per le "testate ufficiali" mettere link espliciti ai blog usati come fonte. In questo caso il link esiste, anche se forse si potrebbe discutere sull'uso fatto delle foto (a quanto pare senza chiedere autorizzazione preventiva all'autore).

L'aspetto di questa vicenda che mi pare interessante è il "rovesciamento" di ruoli. Il blog fa la notizia, il quotidiano la riprende. Il blog esiste dal 2005 ma fino a ieri era noto solo a una ristretta cerchia di persone. In poche ore ha ricevuto oltre 30.000 visite (se fosse stato fatto a settembre sarebbero state sicuramente almeno 3 volte tanto) ma la cosa che più mi lascia stupito sono i commenti. Ce n'è di molti tipi, ma le due categorie più numerose sono quelli che approvano e quelli che preferirebbero l'auto-censura. Dirò la mia: ho letto un po' di post di questo blog, anche di mesi/anni indietro, e tutto si può dire tranne che questo sia un blog "delatorio". La mia esperienza è che chi si prende la briga di scrivere un blog "aziendale" lo fa perché all'azienda ci tiene, anche quando è estremamente critico nei suoi confronti (come nel caso di Mini-Microsoft che probabilmente ho già citato in passato). Dal mio punto di vista, invece, questo blog è meglio di quanto l'azienda (in questo caso Alitalia) non faccia "istituzionalmente" per migliorare le relazioni con il pubblico. Lo dico anche da (ex) utente più volte bastonato e maltrattato dalla nostra compagnia di bandiera.

Tralasciando però il caso specifico, è il meccanismo di comunicazione che mi interessa. Censurare questo tipo di blog è impossibile. Con un minimo di precauzioni, può essere fatto in forma anonima e difficilmente riconducibile al responsabile se non tramite un'inchiesta giudiziaria. Tentare di limitarne la creazione e diffusione sarebbe comunque poco lungimirante, perché al momento i dati (per lo più di casi americani) dicono che la percezione esterna di un'azienda migliora quando i propri dipendenti sono liberi di parlarne che non quando ciò viene limitato o (peggio) controllato. Il giornale che fa la notizia partendo da un blog corre un paio di rischi: da una parte l'uso di fonti non verificate/verificabili, dall'altra la distorsione del contenuto che poi il lettore può verificare di persona andando a controllare personalmente la fonte. Secondo me questo dovrebbe, alla lunga, aiutare a rendere i giornalisti più responsabili nel creare il servizio, pesando meglio le parole. Il caso esemplificativo (nel blog citato prima) è la discussione nata attorno a un post che il giornalista trasforma in un possibile problema di sicurezza (la cosa in realtà viene poi ingigantita soprattutto nei tanti commenti che potete vedere nei post linkati).

Per dirla tutta, l'articolo deve necessariamente sintetizzare e riportare note di colore che lo rendono interessante – mi è capitato di vedere distorsioni ben peggiori quando conoscevo bene i fatti che si celavano dietro un pezzo. E il trasferimento di traffico dice anche che, oggi, il giornale "ufficiale" comanda ancora e guida il traffico dei lettori, anche sul web. Però, allo stesso tempo, questi episodi presentano a un numero sempre più vasto di persone (in ordini di grandezza!) le potenzialità offerte dai blog. Non credo che le testate giornalistiche, così come le conosciamo oggi, siano destinate a sparire. Ma certamente cambieranno, anche se il come è ancora in fase di definizione. Resta da vedere quanto tempo ci metteranno le aziende italiane ad adeguarsi al fenomeno dei "blog aziendali" – per ora molte fanno probabilmente la cosa più semplice, che è non pensarci (basta leggere i disclaimer di alcune mail aziendali per capire quanto sia ancora inconcepibile concedere questa libertà espressiva).

UPDATE: poco dopo il mio post, il blog di cui ho parlato è stato chiuso, a quanto pare dall'autore stesso. In realtà adesso allo stesso URL compare un nuovo blog, che ha "preso" il nome appena liberato, così prenderà un po' di traffico. Come ho detto nei commenti, è un peccato l'esito finale di questa vicenda, un'occasione persa.

Disegnare l’interfaccia utente

Uno dei problemi introdotti da WPF (e più in generale dalle più recenti tecnologie per sviluppare interfacce utente, partendo già da Flash) è la mancanza di un paradigma predefinito per l'interfaccia utente, che allo stesso tempo concede maggiore libertà ma anche un più grande problema "interpretativo" che non sempre viene risolto al meglio. La problematica mi incuriosisce da tempo e, sebbene non possa permettermi di occuparmene "professionalmente", ho letto tra le altre cose il libro Sketching User Experiences di Bill Buxton.

Uno dei dubbi che mi è venuto leggendolo è la necessità di trovare "esperti" di disegno dell'interazione con l'utente (attenzione, non parliamo di grafica!) per arrivare a dei risultati significativi. Oggi però ho letto questo articolo che descrive come le tecniche di "sketching" siano state adottate nella progettazione di ANTS Profiler 4 (se vi interessa la beta andate qui). In questo caso c'è stato un lavoro di squadra, anche perché molti del team sono anche potenziali utenti del prodotto stesso e questo semplifica le cose.

Lo ammetto: sono per l'eliminazione della carta, ma quando questa è inutile. Nella fase iniziale di progettazione (si tratti di un'interfaccia, di un'architettura o dell'organizzazione di un evento) carta e penna (e magari pennarelli colorati) mantengono un ruolo importante.

.NET sta diventando troppo complesso?

Ho appena letto questo articolo su SDTimes che fa alcune interessanti considerazioni sull'aumento della complessita del .NET Framework e soprattutto sulla sovrapposizione di alcune tecnologie, traendo spunto dall'annuncio del rilascio appena avvenuto di .NET 3.5 SP1. Per esempio: esistono due modelli per l'interfaccia utente (Windows Forms e WPF). Esistono due librerie -stile ORM- in parte concorrenti come LINQ to SQL e ADO.NET Entity Framework.

La notizia è che Microsoft percepisce il problema e pensa di risolverlo con tecnologie come il Client Profile che debutta in .NET 3.5 SP1 (in breve: si può installare solo una parte del .NET Framework contenente gli assembly utili per il client tralasciando quelli pensate più per applicazioni lato server).

Non so se il problema sia riconducibile solo alle problematiche di deployment, sinceramente al giorno d'oggi mi pare più problematico fare le scelte giuste in fase di disegno e sviluppo che non pensare che la distribuzione di nuovi componenti (che poi sono l'aggiornamento di una parte del sistema operativo…) possa costituire IL problema principale. Semmai, ci sarebbe da discutere se sia meglio distribuire alcune classi come parte del framework o come assembly distribuibili anche in modo "privato". Per esempio… LINQ to SQL quando si chiamava ancora DLINQ (in Beta) poteva essere distribuito con una serie di assembly privati, ora che è stato rilasciato è un pezzo di .NET e, come tale, va a finire nella Global Assembly Cache e, per i soliti motivi di compatibilità, è poco probabile che versioni future introducano dei "breaking changes" significativi, anche qualora sarebbe molto utile farlo. Mi chiedo se non sarebbe meglio introdurre delle nuove tecnologie in una forma più leggera (ma rilasciata e supportata, non solo quando sono in beta) e poi "annegarle" nel .NET Framework "ufficiale" solo una volta arrivate a una versione 2 o 3. Credo che l'evoluzione potrebbe essere migliore e non si creerebbero troppi problemi a chi vuol fare early adoption (un conto è distribuire degli assembly privati, un altro è "obbligare" ad aggiornare il .NET Framework – non è che sia impossibile ma i tempi sono diversi specialmente in reti di una certa dimensione, dove queste cose vanno pianificate per tempo).

Mark Russinovich al Virtualization Congress (Londra)

Il 15 e 16 ottobre 2008 a Londra si terrà la prima edizione del Virtualization Congress.

Il motivo per cui ne scrivo è almeno duplice. Pur non essendo un esperto di virtualizzazione (nel senso sistemistico del termine) ho usato prodotti di virtualizzazione sin dagli albori e attualmente non potrei farne a meno per tutta l'infrastruttura di sviluppo che uso quotidianamente. Nonostante questo, non sono ancora totalmente convinto di virtualizzare alcune cose (come SQL Server in ambienti dove le prestazioni sono importanti) ma ciò non toglie nulla ai vantaggi di questa tecnologia.

L'altro motivo è più personale: conosco bene Alessandro Perilli e ho seguito il suo sito virtualization.info sin dai primi post. Una conferenza internazionale indipendente sulla virtualizzazione è un suo preciso obiettivo da anni e tra pochi mesi questa conferenza sarà realtà. A Londra, con speaker del calibro di Mark Russinovich (per rimanere tra quelli che chi segue questo blog probabilmente conosce). Mark ha anche registrato un video promozionale per la conferenza.

Insomma, i fatti parlano da soli, non serve che aggiunga commenti…