Marco Russo

.NET, Business Intelligence e dintorni

News

Windows Developer Conference 2012

Torino Technologies Grou

Corsi

Libri

Miei blog in inglese

Archives

November 2004 - Posts

Un sito assolutamente non politically correct

Lungi da me aprire un nuovo fronte dell'eterna lotta su quale è il miglior database relazionale... Probabilmente esistono già migliaia di posti dove discuterne. Però stasera ho trovato un sito cui vale la pena dare un'occhiata. Non è un sito politically correct.

Si tratta del "The I-Hate-Oracle club" e nasce da una costola del Daily WTF di cui ho parlato la settimana scorsa.

I motivi per cui nasce questo club sono spiegati in questa pagina e devo confessare che, pur non essendo totalmente d'accordo con l'autore, devo ammettere che alcune motivazioni hanno profonde radici nella verità e la prosa con cui vengono esposte è irresistibile. Vi avverto: non arrivate a leggere l'ultimo punto se siete in ufficio e un non-tecnico potrebbe chiedervi perché ridete da soli.

Al di là dell'aspetto puramente goliardico, è curioso scoprire che Microsoft non è l'unico obiettivo per questo genere di attacchi "feroci", anche se resta quello che fa i grandi numeri...

MSDN per chi ha solo Visual Studio

Credo che chi legge questo blog sia già abbonato a MSDN... Ma se c'è ancora qualcuno che ha Visual Studio senza avere MSDN, questa offerta è molto interessante.

Non è che voglio fare pubblicità a Microsoft, non ne ha bisogno, ma proprio non so come farei a sviluppare senza avere MSDN Universal. Torna sempre utile. Probabilmente chi ha un Visual Studio Professional fa un affare... anche se devo dire che non ho fatto i conti per capire quanto convenga... se qualcuno li fa, i commenti sono aperti.

CLR Profiler

Oggi ho finalmente avuto bisogno di usare CLR Profiler. L'avevo già provato in passato, ma usarlo per risolvere un problema reale è tutt'altra faccenda. CLR Profiler analizza l'esecuzione di un assembly .NET e fornisce informazioni sull'uso della memoria (chi, come, quando, da chi viene allocato) e sul grafo di chiamate. Non è uno strumento da usare come profiler per le prestazioni in termini di CPU ma è utilissimo per individuare le cause di un consumo eccessivo di memoria (che direttamente e indirettamente ha i suoi effetti anche sulle prestazioni velocistiche).

Per chi vuole curiosare senza installarlo (anche se è molto piccolo e non invadente), questo episodio su MSDN TV ne illustra le potenzialità.

Se qualcuno vuole usarlo, una lettura obbligata è il documento word contenuto all'interno: 11Mb di Word con molte bitmap ma anche tanto testo per spiegare come sfruttare le capacità di questa utility.

Difetti:

  • deve essere avviato con privilegi di amministratore (e non dice nulla se non lo fate, salvo che poi non si comporta correttamente dando un'eccezione o attendendo all'infinito un evento che non si verifica)
  • il file di log che genera è in formato ASCII - su un programma che usa intensivamente la memoria diventa molto ingombrante
  • l'interfaccia utente è un po' essenziale e manca di help on line... ma questo non è materiale per neofiti quindi ci si può aspettare che uno il manuale lo legga...

Pregi:

  • molti grafici e diagrammi diversi che illustrano comportamenti anche complessi difficilmente rappresentabili in forma testuale
  • gratis con tanto di sorgenti
  • nessun problema di setup (deployment xcopy, insomma)

Resoconto di oggi: ho ridotto la memoria occupata del 30%, passando da 900Mb a 600Mb, ovviamente intervenendo dove meno me lo sarei aspettato. Quello che invece pensavo fosse pesante si è rilevato poco significativo. Ancora una volta, la regola d'oro è: prima di ottimizzare bisogna misurare.

Installare SQL Server su XP via Remote Desktop

Installare SQL Server su XP via Remote Desktop è una cosa che non si fa... nel senso che non funziona.

L'installazione di SQL Server 2000 non dà errori ma si blocca a un certo punto. L'installazione di MSDE a un certo punto va in timeout ma senza dare una diagnosi precisa (neanche dai log si capisce).

Il problema è che qualcosa che fa durante l'installazione non è tanto compatibile con l'uso di Remote Desktop. Spostandosi fisicamente su tastiera e monitor del PC incriminato, tutto fila liscio. Ciò che mi pare incredibile è che non ci sia un articolo di KB sul problema (almeno... io non l'ho trovato...) né tantomeno una diagnostica migliore. Se pensate al numero di situazioni in cui potrebbe capitare di dover installare MSDE in questo modo, capite che qualcosa di meglio ci vorrebbe.

Sito dedicato a SQL Server Integration Services

Grazie alla segnalazione di Donald Farmer ho appena scoperto un sito dedicato a SQL Server Integration Services (come si chiama il DTS in SQL Server 2005): http://www.sqlis.com/

Il sito non ha ancora molti contenuti ma per essere in beta è già uno dei più ricchi in circolazione.

PDC 2005: qualche ipotesi di data (e location)

Premesso che la notizia forse è priva di qualsiasi fondamento... ma proviamo a indovinare quando sarà PDC 2005.

La data che risulterebbe da un'ipotetica fuga di notizie è 7-17 settembre 2005 a Los Angeles (la durata potrebbe poi essere minore).

La fonte? Beh, non molto sicura... in questo post c'è un commento (anonimo) che dice di aver visto questa data su questa pagina (calendario del Los Angeles Convention Center), che però ora risulta modificata. Sembrerebbe uno scherzo... però ora in quelle date figura un ipotetico "Trade Show" tenuto da "Technology Companies" che richiede l'occupazione di "All Areas". Ora, se qualcuno è stato in questo centro congressi si renderà conto che una fiera che occupa tutto il centro... deve essere qualcosa di immenso. Un COMDEX, per esempio, ma non mi risulta che sia stato spostato a Los Angeles. Che sia solo un tentativo di mantenere il segreto dopo che qualcuno si è accorto della "fuga" di notizie?

In ogni caso non sarebbe la prima volta che Microsoft opziona un centro congressi per PDC e poi sposta tutto: è successo nel 2003 spostando tutto da aprile a ottobre. Succederà anche nel 2005/2006? Se qualcuno ha informazioni o speculazioni in merito e può parlare... i commenti sono aperti.

SQL, ottimizzazioni, numeri random e curiosità

SQL Server nasconde sempre qualche scoperta interessante: oggi è stata la volta di alcune SELECT che risultano più ottimizzate scrivendo una sintassi controintuitiva: in alcuni casi è meglio fare una LEFT JOIN con una tabella e mettere una WHERE tabellajoin.campo IS NOT NULL piuttosto che fare una WHERE NOT EXISTS (SELECT * FROM tabella WHERE stessa condizione join). Attenzione, non è sempre così, ma in alcuni scenari la differenza è molto grande (quasi un ordine di grandezza). Si tratta di un fenomeno che avevo già descritto in un post precedente su qualcosa di analogo.

Come al solito, misurate sempre prima di prendere una decisione. SET STATISTICS IO ON e SET STATISTICS PROFILE ON sono due strumenti indispensabili per trovare i colli di bottiglia delle vostre query.

Uno dei motivi per cui sono arrivato a valutare queste diverse ottimizzazioni è il fatto che avevo avuto problemi prestazionali nell'uso di una UDF (user defined function). Le UDF sono valutate per ogni riga esaminata, anche se la funzione non ha parametri ed è deterministica (e dovrebbe quini restituire sempre lo stesso valore). In realtà stasera ho scoperto quasi per caso che non è così (non è detto che una funzione deterministica sia veramente tale): se ne parla in questo post di Jeff Smith dove viene spiegato come generare dei numeri random diversi per ogni riga del risultato di una SELECT. Leggete anche i feedback perché c'è una soluzione alternativa basata a quella descritta nel post che in alcuni casi può essere comoda. Il non-determinismo è dato dal fatto che SQL Server consente di creare una UDF contenente all'interno una SELECT su una vista... che a sua volta può fare una SELECT con una funzione RAND (che non è deterministica): aggirato l'ostacolo, ecco che la nostra UDF diventa non deterministica e restituisce un valore diverso per ogni chiamata. Comodo per avere i numeri random, ma da maneggiare con cautela per le implicazioni che può avere in altri scenari!

Infine, la curiosità: leggendo altri post dello stesso autore ho trovato questo che parla di indici: niente di nuovo, ma il post parte come commento a un posto su questo sito: TheDailyWTF. Se non sapete cosa vuol dire l'acronimo WTF cercate su Google... Il bello del sito è che raccoglie aneddoti comprensibili solo a un programmatore (per la maggior parte, almeno).

Oggi due feed RSS in più sul mio SharpReader.

Server NTP italiano... a Torino!

Lo IEN Galileo Ferraris di Torino, depositario dell'ora esatta nazionale, offre un server NTP primario (e quindi anche SNTP) con cui sincronizzare il proprio PC. Microsoft offre un servizio simile (time.windows.com) ma se per qualsiasi motivo volete cambiarlo potete usare ntp1.ien.it o ntp2.ien.it. Ricordo che il comando per definire le impostazioni è NET TIME /SETSNTP:ntpserver (dovete sostituire a ntpserver l'elenco dei server che volete interrogare).

Non so dire se ci siano differenze apprezzabili in termini di precisione (probabilmente se il client usa SNTP non ce ne saranno), ma se tra i lettori c'è qualche esperto in materia, i commenti sono aperti.

Demo webcast "Deployment di un assembly .NET"

Sono disponibili le demo del mio webcast di oggi "Deployment di un assembly .NET", scaricabili da questo link.

Demo webcast "Anatomia di un assembly .NET"

Sono disponibili le demo del mio webcast di ieri "Anatomia di un assembly .NET", scaricabili da questo link.

Webcast MSDN su DVD (per gli abbonati a MSDN)

Molti dei lettori di questo log saranno abbonati a MSDN. Ogni mese riceveranno un numero variabile di DVD (o di CD, ma spero siate passati al DVD altrimenti dove li mettete?) tra cui ne spicca uno argentato, da me finora ritenuto alquanto inutile, che aveva come titolo "Index".

Da novembre su questo DVD hanno cambiato il titolo, che è diventato "Index & Webcast". Incuriosito, ho scoperto che sul DVD ci sono alcuni dei webcast più recenti di MSDN (in lingua inglese). Dicembre ha degli altri webcast. Ma allora... vuoi vedere che anche prima... e in effetti è così. Non sono andato molto indietro ma già a ottobre c'erano i webcast del mese, anche se il titolo recitava soltanto "Index". Una volta questi contenuti erano sul DVD che conteneva MSDN Library, ma evidentemente ora li hanno spostati per motivi di spazio.

Avere i webcast su DVD ha diversi vantaggi: li si può vedere off-line, non si consuma banda, non serve una banda larga...

Il CD inutile è ora diventato uno di quelli da custodire gelosamente che non va mai buttato via! Morale: occhio al contenuto del DVD, il titolo può ingannare!

Usare un computer senza essere amministratori

Michael Howard ha appena pubblicato un articolo su come abbassare i privilegi di un utente amministratore per leggere la posta o navigare in Internet senza essere amministratori. La tecnica è interessante: anziché elevare i privilegi bisogna abbassarli e per questo non c'è bisogno di chiedere password.... il processo va lanciato da un altro processo che prima crea un token con privilegi più bassi e poi lo usa per creare il processo desiderato (Outlook, Internet Explorer o altro). Il bello è che così non si "perde" il profilo (l'utente non cambia, cambiano solo i diritti e i privilegi).

Nello stesso articolo, ovviamente, viene fatto di tutto per disincentivare l'uso del computer come amministratore. Ma quando avete un buon motivo (non tutti i giorni) il tool descritto è molto comodo.

Un altro link interessante fornito da Michael Howard è quello del blog di AAron Margosis, tutto dedicato a tecniche e trucchi per usare Windows senza essere amministratore. Ci sono cose utilissime, come PrivBar di cui non conoscevo l'esistenza.

Disponibile Avalon Technical Preview... ma solo agli abbonati MSDN
Tim Sneath ha annunciato la disponibilità di Avalon CTP (Community Technical Preview) per gli abbonati a MSDN. Avrei voluto scaricarlo ma... in questo momento il sito MSDN Subscriptions ha dei problemi sul logon. Sono curioso curioso curioso di vedere con che limitazioni gira su XP (e 2003)...
Vulnerabilità su Skype e patch disponibile

Nessuno è immune da buffer overrun, neanche Skype. C'è una patch disponibile che va scaricata immediatamente (siamo alla versione 1.0.0.100, se avete una versione precedente dovete sostituirla immediatamente).

La realtà, sulla security, è che nessuno può considerarsi immune da problemi e maggiore è la diffusione di un prodotto, maggiore è l'interesse a trovare falle e sfruttarle.

Bill Gates alla Technical Conference

Sto sentendo l'intervento di Bill Gates alla Microsoft Technical Conference. Nessun annuncio rivoluzionario, ma qualche curiosità. Bill Gates ha parlato di Longhorn (dopo che negli ultimi mesi Microsoft si è guardata bene dal parlarne in manifestazioni ufficiali) e ha parlato (brevemente) di WinFS, senza specificare che non fa più parte della versione che sarà rilasciata "in futuro" (non c'era una data sulla slide).

Non credo ci sia nessun messaggio sotterraneo, forse una semplice dimenticanza (anche le slide sembravano... come dire... non di prima mano).

Arrivati alle domande, una bella domanda diretta (da parte di Raffaele Rialdi) su quale siano i piani di Microsoft per usare il framework .NET nei propri prodotti, in particolare Office. La risposta, altrettanta diretta, è che la prossima versione sarà ancora un ibrido tra codice managed e unmanaged (e questo si sapeva). Non si è sbilanciato su una data (e neanche su un se) per una futura versione completamente managed. Come penso da quando ho visto i primi vagiti di C++/CLI, quella è la direzione per migrare applicazioni unmanaged... anche se Office temo abbia problematiche di porting molto più complesse di quelle derivanti semplicemente dal linguaggio - quasi quasi converrebbe riscriverlo, ma bisogna chiedersi se è vale veramente la pena riscriverlo...

Per il resto, il leit-motiv è semplificare e rendere la tecnologia più accessibile a tutti. Un piccolo commento: ho visto con calma il nuovo Media Center - è veramente facile da usare. Ma per chi fa il ns. lavoro un po' di complessità ci vuole, altrimenti che gusto c'è?

More Posts Next page »