ottobre 2005 - Posts
Leggendo la newsletter di Jakob Nielsen ho scoperto che le linee guida per definire i tempi di risposta di un'applicazione sono state definite per la prima volta 37 anni fa e sono valide ancora oggi. L'articolo in questione rimanda infatti a un libro del 1968.
Dettagli di calendario a parte, la questione è quantomai attuale perché il numero di applicazioni che non seguono le linee guida e superano il secondo di attesa senza dare segni di vita è assolutamente elevato. Il problema nasce dal fatto che riuscire a stare in questi tempi diventa sempre più difficile, grazie alle architetture sempre più complesse che costruiamo e che sono sempre più interdipendenti e soggette a manifestare all'utente un qualsiasi collo di bottiglia presente nel sistema.
Parlo anche per esperienza diretta: a volte non è facile conciliare la richiesta di una certa funzionalità da parte dell'utente con dei tempi di risposta accettabili e capita di dover scendere a compromessi che, come tali, non lasciano del tutto soddisfatti. Prova di questo è anche il fatto che le applicazioni "console" sono ancora in gran forma soprattutto in quei campi dove la velocità nel fare data entry è il requisito primario. Il problema, secondo me, è che eliminando il mouse si semplifica la logica di richiesta dati, sebbene sia assolutamente possibile ottenere le stesse funzionalità con Windows, anche se manca un'interfaccia "da tastiera" efficace e consistente per tutte le applicazioni Windows. Ai tempi del Clipper (ma credo sia uguale su un AS/400 ancora oggi) non c'era bisogno di spiegare quale fosse il tasto per confermare un form, quasi tutte le applicazioni avevano tasti funzione identici. Ma il punto non è che l'interfaccia a carattere sia meglio, semplicemente risulta più veloce e immediata nei tempi di risposta (oltre alla possibilità di "bufferizzare" i comandi anche quando le pagine di interfaccia utente arrivano in ritardo).
Comunque, talvolta i problemi si aggirano: se eliminiamo completamente la carta e demandiamo agli utenti finali il compito di inserire i dati per le loro richieste (prenotare un hotel, compilare un modulo, ecc.), ecco che forse potrebbe venire meno la necessità di fare data entry e avere un'interfaccia adatta... Non è una soluzione, certo: noi informatici usiamo il termine workaround...
Molte volte mi sono lamentato per l'impossibilità di migrare molti package DTS su SQL Server 2000 usando il Data Flow al posto dei Data Transformation Task, anche quando ciò sembrerebbe facilmente realizzabile (il caso classico è una query SQL che viene mappata "direttamente" sulle colonne della tabella destinazione).
Oggi ho scoperto che in parte ciò è possibile, anche se ci sono alcune limitazioni e bisogna quindi "adattare" il DTS di partenza prima della migrazione (per fortuna molte cose si possono fare scrivendo degli script che lavorano sul modello a oggetti di DTS). I dettagli in questo post sul mio blog in inglese.
Da due giorni ho installato la versione RTM di SQL Server 2005. Uno dei problemi maggiori, con le versioni beta, era la relativa lentezza dell'ambiente di sviluppo (BI Developer Studio). Posso già dire che la situazione è nettamente migliorata nella RTM, trovo che l'ambiente di sviluppo sia infinitamente più utilizzabile su un notebook con un Pentium 2.4GHz rispetto a un server quadriprocessore da 3GHz. Il trucco (per il notebook) è di avere tanta RAM (io ho 2Gb). Vedendo i numeri di Process Explorer direi che si può già iniziare a lavorare bene con 1Gb, mentre credo che con 512 Mb le cose si mettano decisamente male.
Adesso dovrei provare a vedere cosa cambia in una macchina virtuale, perché molte beta le ho provate in macchine virtuali e non "reali", ma la CTP settembre e giugno l'avevo già usata su macchine formattate apposta e mi sembra di poter dire che fosse più lenta.
Non ho ancora elementi utili, invece, per valutare le prestazioni del server. Ma entro novembre ho parecchio lavoro da fare che mi darà elementi utili.
Feedback graditi, soprattutto da chi ha avuto sorprese negative.
Microsoft ha aggiornato
SQL Server Health and History Tool (SQLH2) in modo da supportare SQL Server 2005. Si tratta di uno strumento utile ed economico per chi ha molti server SQL da gestire, ma credo che, visto il costo (è gratis) può tornare utile anche a chi di server ne ha solo uno e vuole vedere degli andamenti temporali sull'utilizzo delle risorse (un breve articolo che ne spiega le caratteristiche è disponibile
qui).
Post da week-end: Robert Scoble segnala che suo figlio (11 anni) ha aperto un suo blog. Il padre lavora in Microsoft, il figlio ha aperto il blog con un servizio di Google (BlogSpot).
Visitando i due siti ci si rende conto che, se uno non mette una foto (che poi potrebbe anche non essere vera, ma questo è un altro discorso) il nostro senso di percezione del "blogger" è unicamente basato sulla parola. E in certi casi l'età non è facilmente deducibile, e non solo nel mondo dei blog. Quante volte avete letto romanzi che pensavate essere stati scritti dalla mente fresca e lucida di un ventenne, per poi scoprire che si trattava magari di un validissimo sessantenne? Oppure il contrario? Sui blog può capitare lo stesso.
Interessanti sviluppi dei modelli di relazione ci promette il futuro...
Gli abbonati a MSDN possono già caricare la versione finale di Visual Studio 2005 e SQL Server 2005. Stamattina ho scaricato SQL Server 2005 e sono riuscito ad andare inaspettatamente al massimo consentito dalla banda che avevo a disposizione... Finalmente si può cominciare a fare il deployment di applicazioni per .NET 2.0 e SQL Server 2005.
Con il lancio di SQL Server 2005 e Visual Studio 2005 arrivano un po' di novità anche per gli MCP (Microsoft Certified Professional) che avranno tutta una nuova serie di sigle e percorsi di certificazione che andranno a sostituire gli attuali. Chi ha già certificazioni MCAD avrà l'aggiornamento con un solo esame, mentre ci vogliono due esami per l'upgrade degli attuali MCDBA e MCSD (che se ho capito bene sono diversi, quindi sono 4 esami per chi è sia MCDBA che MCSD).
Ho trovato questo articolo che riassume il discorso piuttosto bene, mentre i dettagli sono sul sito di Microsoft MCP.
Stanco della mancanza di IntelliSense nei tool di SQL Server 2000 e 2005, ho provato PromptSQL: si tratta di un'utility shareware (25$, un mese di prova gratuito) che offre un certo numero di funzioni di IntelliSense a un buon numero di applicazioni (Query Analyzer, Management Studio, Enterprise Manager, Visual Studio, UltraEdit), recuperando la connessione a cui fare riferimento in automatico quando ci riesce o in alternativa chiedendola all'utente.
Il prodotto è ammirevole soprattutto per la tecnica con cui è stato costruito: è un processo esterno che (immagino) intercettando e inviando messaggi alle finestre dell'interfaccia utente dei vari programi riesce a dedurre le informazoni contestuali necessarie alla visualizzazione dei dati richiesti (elenco di tabelle/viste/stored procedure in un database, elenco dei campi in una tabella, condizioni di join, variabili globali e altro ancora). Paradossalmente, l'esistenza di un programma simile, che funziona anche con un utente non amministratore, fa riflettere sulla potenziale vulnerabilità dei propri dati personali costantemente presente in Windows: se eseguo un programma sul desktop, anche senza essere un utente amministratore tale programma può catturare più o meno quello che vuole (tastiera, contenuto delle finestre) a mia insaputa. E magari spedirlo a qualcuno. Ne ho già parlato in passato, la "soluzione" è passare a codice .NET e (in parte) di passare a Windows Vista. Ecco, se quest'applicazione non funzionasse con Windows Vista (almeno senza effettuare abilitazioni particolari) questo sarebbe un buon segno.
Nel frattempo, sfrutto questa "vulnerabilità" per aumentare la produttività del mio lavoro. La vita è fatta di compromessi.
Oggi ho notato
questo whitepaper (risalente a maggio, per la verità) che fa una panoramica di varie tecnologie di integrazione di Microsoft (Message Queue, Service Broker, BizTalk, Integration Services, Replica di SQL Server, Web Service, Remoting, Enterprise Services, Indigo, Host Integration Services) collocandole in vari scenari di utilizzo. Talvolta si sceglie la tecnologia che si conosce meglio piuttosto che quella ideale, semplicemente perché non si conosce l'esistenza di quella "giusta". In questo senso va letto un documento simile - non è approfondito al punto di rispecchiare tutte le possibili sfumature (inevitabilmente diversi prodotti si sovrappongono, almeno parzialmente, in certe aree) ma è un buon riassunto.
Premessa: post da week-end, poco tecnico...
Sì, supponete che Bill Gates avesse da piccolo preso la passione per cercare petrolio invece che per l'informatica. Non so se oggi pagheremmo la benzina più o meno cara. Sicuramente il mondo di oggi sarebbe diverso. Qualcuno ha provato a specularci un po' sopra, come suggeritomi in un post di Chris Sells ho letto If Microsoft never existed...
Sicuramente è una simulazione divertente, ma dentro di me sono convinto che non sarebbe così, alcuni fenomeni si sarebbero affermati comunque.
- L'interfaccia grafica era già presente e sarebbe stata una richiesta comune (difficile immaginare centinaia di milioni di persone oggi davanti a un monitor con interfaccia a carattere e basta).
- Internet (e in particolare l'esperienza del web browser) si è affermata nonostante Microsoft (ricordo ancora la mia sopravalutazione della prima versione di Microsoft Network, che ancora oggi alcuni mi rinfacciano e di cui ho parlato qui), almeno all'inizio.
- Gli standard di mail (SMTP/POP3) si sono affermati nonostante tutto e tutti (si poteva fare di meglio, ma la semplicità iniziale che ne ha consentito la diffusione oggi la paghiamo con lo spam).
- Infine, credo che uno dei driver di una certo abbattimento dei costi sia una combinazione di connettività Internet interessante per tutti (e come ho detto credo si sarebbe diffusa comunque) legata al mondo ludico dei videogiochi: quest'ultimo guiderebbe la ricerca nelle prestazioni e nell'abbattimento dei costi, la prima sarebbe leva sia per i volumi (e quindi di nuovo per i costi) sia per l'affermazione di aziende multinazionali (nel software o nell'hardware).
La storia dei mercati liberi ci insegna che, in assenza di condizionamenti esterni (legislativi, congiunturali) un mercato in espansione tende all'inizio a frammentarsi, salvo poi, nella sua maturazione, portare a una naturale concentrazione dove le prime 3/4 aziende prendono la fetta maggiore del mercato e dove il primo player in genere non riesce ad andare molto al di là del 30-40% del mercato.
Prima che qualcuno porti delle cifre per discreditare questa tesi, premetto che questi sono principi generali che sono piuttosto suscettibili di interpretazione (quale è il confine esatto di un mercato?) e che ovviamente esistono tutte le eccezioni del caso: se possiamo dire che Microsoft sia oggi quasi monopolista per i sistemi operativi di un certo mercato (la linea di prodotti desktop e ormai forse anche per i server?) non si può sicuramente dire che sia così per il software in generale (Microsoft è fuori da molti segmenti verticali, e in molti è entrata da poco a suon di acquisizioni ma nonostante questo ha un ruolo ancora marginale) e non so se si possa dire per i sistemi operativi "in generale" (se consideriamo tutti i PC, dai palmari ai mainframe, per tutti gli scopi, militari e non, Microsoft non è - ancora? - omnipresente).
Ma se guardiamo ai fenomeni in generale, vediamo che non è così. Non c'è un costruttore hardware che domina. Non c'è un ISP che domina (ci metto dentro tutti i vari portali tipo MSN, Yahoo, ecc., e qui c'è Google che bussa alla porta).
Io credo che se Microsoft non fosse mai esistita, qualcuno ne avrebbe preso il posto. Tecnologicamente ci sono stati ottimi candidati: Next di Steve Jobs (sì, l'attuale e originale CEO di Apple), la stessa Apple, Amiga. Tutti hanno avuto elementi per poter primeggiare. Ci è riuscito qualcun'altro, nonostante un prodotto inizialmente peggiore (sicuramente fino alla versione 3 Windows era impresentabile). Ma la fortuna di Microsoft nasce dal DOS, frutto di uno dei più grandi errori di valutazione della storia informatica (nello specifico fu un errore di IBM). Insomma, saper valutare il futuro di un'impresa in base alle condizioni in cui nasce sembra impresa improba prendendo questi esempi...
Da un paio di settimane sto usando la nuova versione di NEO (Nelson Email Organizer): si tratta di un prodotto per organizzare e ricercare la mail e si appoggia sopra Outlook (insomma, Outlook ce l'ho ma quasi non lo vedo). In teoria molte delle funzioni che ha sarebbero presenti anche su Outlook 2003, ma molte di queste sono semplicemente implementate meglio e/o molto più veloci. Ormai è una consuetudine che molte persone con cui lavoro, quando non trovano una mail, la chiedano a me piuttosto che cercare nel loro Outlook (in effetti molti di loro a Natale avranno un regalo interessato da parte mia...).
Come dicevo, due settimane fa ho aggiornato la versione di NEO alla 3.1; ci sono molti piccoli miglioramenti ma tra tutti c'è una singola funzione che mi sta facendo risparmiare un'enormità di tempo: la voce "Quick File Recent", che ho personalizzato su un tasto (backspace) consente di smistare una mail verso la cartella desiderata, proponendo un elenco delle N cartelle diverse usate ultimamente per la stessa operazione. Sono abituato a "storicizzare" le mail in un sistema gerarchico di cartelle che, più che per le ricerche free-text, sono utili quando i criteri di ordinamento sono magari basati sul tempo e non sulla presenza di keyword particolari. Questa funzione evita alcune operazioni di click con il mouse che, dovendo cercare cartelle nidificate, risultano molto lente. Non pensavo di trovare questa funzione così comoda.
La morale è che la qualità di un prodotto è fatta anche di piccoli dettagli, tanto che una piccola software house fa qualcosa che è di gran lunga più utilizzabile di Outlook. Vedremo come risponderà Outlook 12 tra un mese o due...
Facendo alcune ricerche per aggiornare del materiale didattico mi sono imbattuto in queste pagine che fanno il riassunto delle caratteristiche degli standard SQL:1999 e SQL:2003 associandole alla relativa compatibilità di vari database (per Microsoft il riferimento è SQL Server 2000). Come è sempre stato, nessun produttore (tra i big) supporta uno standard al 100%. Notare che SQL:2003 è un'estensione di SQL:1999 tale che un RDBMS compatibile con SQL:1999 lo è anche con SQL:2003, almeno per le funzioni Core.
Purtroppo non ho trovato un'analisi molto accurata e dettagliata di tutte le funzionalità dello standard rispetto alla loro implementazione nei vari database. Se qualcuno ne avesse notizia, i commenti sono aperti.
Mancano poche settimane a DevCon2005 e da oggi anche il sito per la registrazione on-line è attivo.
La burocrazia ha "fermato" anche noi, che pensavamo di esserne immuni, e non siamo riusciti a rispettare le scadenze che ci eravamo imposti nella pianificazione iniziale. Ma poco male: chi si è prenotato per tempo ha potuto avere due settimane in più prima di dover pagare...
Oltre a ciò che si vede nel sito, siamo impegnati (e lo saremo ancora di più nel prossimo mese) nella preparazione finale dei contenuti. Quello che succede è il consolidare tutta una serie di conoscenze, esperienze e "pezzi di demo" in un flusso uniforme che sfrutta le "slide" come colonna portante (per noi le slide sono come la sceneggiatura della parte, il canovaccio da seguire) e rende l'esposizione il più fluida possibile. Come abbiamo spiegato nel sito, l'agenda di quest'anno verte su tre parole chiave: approfondimento, aggiornamento e integrazione. Senza perdere di vista le "novità" che ci aspettano nel futuro (l'orizzonte che esploreremo è da 0 a 18 mesi), l'obiettivo principale è quello di condividere l'esperienza architetturale e implementativa che abbiamo acquisito in 5 anni di sviluppo con .NET e altre tecnologie Microsoft come SQL Server, Analysis Services, Biztalk, SharePoint, VSTO e molte altre ancora, applicandole a quelli che saranno i pilastri dei prossimi anni: .NET 2.0, SQL Server 2005 e tutto l'universo di sigle e prodotti che spieghiamo meglio nella descrizone dei track.
Nel blog della conferenza stiamo dando conto di tutte le novità relative a questo evento. Credo che sia significativo il fatto che siamo riusciti ad attirare un pool di sponsor che, come era nelle nostre intenzioni, ci sta aiutando ad arricchire la conferenza in modo da fornire valore direttamente ai partecipanti, fornendo agevolazioni e opportunità di provare tecnologie e prodotti che possono essere utili per il nostro lavoro. Abbiamo scritto tutti i dettagli nella pagina degli sponsor: siamo tanti e per non fare torti a nessuno non ne voglio citare qualcuno in particolare, ma credo che la lista parli da sola.
Per i distratti: DevCon 2005 sarà a Milano il 23 e 24 novembre 2005, tutti i dettagli logistici sono già presenti sul sito.
Ok, basta marketing... :-)
La differenza nei tempi d'accesso tra RAM e disco è aumentata considerevolmente negli ultimi anni. I dischi sono aumentati di capacità, sono scesi di prezzo ma fondamentalmente sono rimasti "veloci" (o "lenti", secondo i punti di vista) uguale. La RAM è scesa di prezzo, sono aumentati i tagli e soprattutto è aumentata la velocità di accesso alle memorie "flash", cioè a quelle memorie che mantengono i dati senza richiedere alimentazione. Ed ecco che le chiavette USB hanno di fatto eliminato tutta una serie di dispositivi per il trasferimento dei dati, primo tra tutti il floppy disk.
Questo tipo di memorie è il miglior candidato a sostituire gli hard disk, anche se lo scenario più vicino è quello di avere dei "dischi a stato solido" (che esistono da anni per applicazioni particolari, ma sono molto costosi) con prezzi ragionevoli per tagli da 20 a 100 Gb. Questo consentirebbe di usare una memoria "flash" come disco di sistema (boot, sistema operativo, applicativi), lasciando i dati "voluminosi" su hard disk di grande capienza (1Tb o più). Già con Windows Vista avremo una funzionalità che consentirà di usare le memorie su chiavette USB come "estensioni" della cache fatta dalla RAM (avrà tempi peggiori della RAM ma pur sempre di gran lunga migliori di un Hard Disk). Ne parlavo stasera con Alessandro Perilli: ci sono prodotti interessanti come U3 che aprono la strada a un gran numero di possibilità (demo di prodotti su macchine virtuali già pronte in primis), ci sono idee come quella di Windows Vista, ma la mia opinione è che siamo solo agli inizi e sono d'accordo con Alessandro sul fatto che in qualche anno cominceremo a vedere novità significative nell'hardware nell'architettura che c'è tra CPU, RAM e Hard Disk.
In cosa si traduce tutto questo? Beh, tra le tante cose, una volta eliminati i tempi di latenza dei dischi molte applicazioni attuali mostreranno i loro limiti prestazionali... Non ha senso ottimizzare all'estremo oggi certe applicazioni, ma il mutato assetto nella memorizzazione del dato potrebbe provocare nuovi contraccolpi a come si pensano le applicazioni che memorizzano dati (anche) in locale. Qualcuno ha già attraversato il confine per esplorare questi nuovi territori? Feedback graditi...
Non si finisce mai di imparare: venerdì ho scoperto che è possibile far funzionare i cubi anche senza averli nel repository con Analysis Services 2000; questa capacità è utile nei casi in cui si vogliano creare delle repliche dei cubi di un database su server diversi per far scalare l'accessibilità in modo orizzontale, usando più server Analysis Services per assorbire il carico di richieste.
Una spiegazione più esauriente della tecnica usata è in un post sul mio blog in inglese. Nei commenti al post Mosha Pasumansky mi ha gentilmente segnalato questo whitepaper in inglese (datato 2002) in cui è in realtà documentato questo comportamento (quasi del tutto, leggete la mia replica a Mosha se siete interessati).
More Posts
Next page »