Marco Russo

.NET, Business Intelligence e dintorni

Corsi

Miei blog in inglese

ottobre 2004 - Posts

OfficeWiki.org - utile per sviluppare con Office

Se qualcuno ha già avuto qualche esperienza d'uso del modello a oggetti di Office da C# avrà scoperto quanto possa essere difficile, a volte, interpretare l'ausilio di Intellisense per capire quali sono i parametri opzionali. Anche a me è successo e il suggerimento di Eric Carter in proposito è molto utile: OfficeWiki.org.

Si tratta di un sito Wiki sull'uso dei PIA (Primary Interop Assembly) di Office 2003. Lo  scheletro delle classi c'è tutto, il supporto da parte della community per ora un po' meno... comunque una guida così può sempre tornare utile.

Computer in auto

Stasera, incuriosito da una pubblicità intravista su una rivista, ho scoperto che in Italia c'è già qualche pioniere del PC in auto. Vero e proprio PC, con Windows, tastiera, mouse (meglio trackball), dischi e tutto il resto. Magari qualcuno vuol farsi un'idea e quindi qualche link gli farà comodo.

Un portale per gli appassionati del genere sembra essere www.carputer.it. Per chi non vuol fare da sé, Mobile Car System è un'azienda italiana che si è lanciata nel settore.

Le case automobilistiche stanno già sfornando alcuni servizi on-line integrati ai sistemi di bordo. Si va dal recentissimo (per l'Italia) BMW Connected Drive al bConnect di Fiat (sicuramente ce ne saranno altri... se qualcuno vuole dare dei contributi i commenti sono aperti).

Chissà se sarà solo una moda passeggera o se diventerà una parte del business dell'automobile. Difficile dirlo, per ora in auto il navigatore mi sembra la funzionalità più significativa, oltre all'antifurto satellitare. Unire tutti i sistemi porta a un evidente ottimizzazione e amplia il mercato anche per il software. Se si prova a pensare alla possibilità di scrivere componenti software non solo per il classico PC ma per tutta una serie di dispositivi mobili, ecco che il concetto di smart client assume una valenza molto più grande di quella che ha nel mondo del computer "desktop".

Comunque, ogni cosa ha il suo prezzo e tra poco dovremo preoccuparci di aggiornare BIOS, driver e mettere i service pack anche in automobile...

Libri in beta da APress

APress offre la possibilità di accedere ai nuovi libri in versione "beta" su questo sito. Credo si tratti di un'opportunità interessante, perché vedere "nascere" un libro è un'esperienza affascinante. Io l'ho fatto con i testi della collana Full Contact in qualità di revisore (e di scrittore per il mio libro sul CLR) e fare il revisore è un impegno molto faticoso... molto più divertente è fare il "rompiscatole", ossia colui il quale legge una bozza e può permettersi di criticarla senza la responsabilità di aver trovato tutte le inesattezze...

PS: questo è il post numero 600. Un post su dei libri. Sarà un segno del destino? Vedremo.

SQL Server Data Mining web site

Grazie al team di sviluppo SQL Server Data Mining è disponibile il sito www.sqlserverdatamining.com: si possono navigare online dei modelli di Data Mining, leggere dei tutorial e scaricare degli esempi. La cosa migliore è visitare il sito per farsi un'idea.

Sarebbe bello se i database usati per i modelli navigabili sul sito fossero messi a disposizione. Io ho provato anche a chiederlo, vediamo cosa rispondono.

OLAP con Oracle

Oracle ha delle capacità OLAP, analogamente ad Analysis Services per SQL Server. Questo post di Mark Rittman, segnalato da Duncan Lamb, spiega come realizzare un semplice cubo (una sorta di "Hello World"...) con Oracle, evidenziando le differenze presenti tra le versioni 8, 9 e 10. Come nel commento di Duncan Lamb, rispetto ad Analysis Services il livello di complicazione introdotto da Oracle (per fare le stesse cose) è molto elevato.

Devo dire che, non conoscendo il lato multidimensionale di Oracle, ho apprezzato la breve ma efficace introduzione. Almeno una cosa che Oracle ha in più, rispetto ad Analysis Services, è la possibilità di creare le entità multidimensionali usando una sorta di "linguaggio" (anche se per alcune entità si ricorre più a una chiamata di macro/funzioni che non a un lignuaggio vero e proprio); SQL Server 2005 avrà la stessa capacità, con Analysis Services 2000 si può ottenere qualcosa di simile facendo script che usano il modello a oggetti DSO, ma non è una cosa molto intuitiva e comoda... Quando si lavora su database più o meno grandi e si deve fare manutenzione (cose apparentemente banali come rinominare la stessa misura su cubi diversi) avere un linguaggio di definizione delle entità è molto più comodo (e veloce) che fare decine o centinaia di click con il mouse...

Certo, per me è facile parlare dei difetti di un prodotto che conosco bene come Analysis Services. Se qualcuno conosce le funzioni OLAP Oracle e vuole condividere la sua opinione, i commenti sono aperti...

Security rafforzata nel kernel per Win64: pro e contro

Matt Pietrek commenta i pro e i contro delle restrizioni alle modifiche a livello kernel nelle versioni a 64 bit di Windows. Il fatto positivo è che il sistema operativo è più sicuro ma il prezzo da pagare è che tool come SoftIce o RegMon/FileMon sono più difficili (se non impossibili) da scrivere.

In realtà la questione che nasce come fatto squisitamente tecnico ha delle implicazioni ben più grandi (la possibilità che il mercato dei tool di basso livello di terze parti sia più o meno aperto). I commenti che seguono il post di Matt sono interessanti da questo punto di vista (vi partecipano anche sviluppatori di Microsoft).

La mia opinione è che dovrebbe essere consentito avere una "uscita di sicurezza" che disabiliti i vari controlli. Il problema, ovviamente, è come evitare gli abusi di una simile backdoor. Però un eccesso di zelo può portare a reazioni esagerate di segno opposto: già mi immagino dei tool che, per aggirare i limiti, vanno a modificare il codice binario di pezzi di kernel... Sarebbe bene evitare di entrare in questa spirale...

Longhorn e Office 12: date previste (non ufficiali)

Riporto le date previste per Longhorn e Office 12 dalla newsletter di Paul Thurrot (per Windows IT Pro).

  • Longhorn Beta 1: 16 febbraio 2005
  • Longhorn RTM: 22 maggio 2006
  • Office 12 RTM: 22 maggio 2006

Ovviamente sono date non ufficiali e, mi permetto di aggiungere, a queste date credo poco. In particolare mi chiedo che succeda a Orcas (la versione di Visual Studio successiva a VS 2005) perché è un tassello importante per stimolare lo sviluppo di applicazioni per Longhorn. Un Visual Studio 2006 dopo Visual Studio 2005 mi sembra improbabile... punterei almeno al 2007. Insomma, si profila un lungo periodo di beta-test...

ADO.NET e Oracle

Conosco molte realtà in cui il database è e resta Oracle ma gli strumenti di sviluppo sono (solo o anche) Microsoft. Con .NET sono legittimi i dubbi su quale provider usare per connettersi con ADO.NET. Questo articolo su MSDN cerca di fare chiarezza sulle differenze tra il provider Oracle fornito da Microsoft e quello nativo Oracle (ODP.NET). Ci sono pro e contro per ciascuno ma per molti la differenza decisiva sarà la compatibilità: il provider Oracle supporta il client Oracle 9.2 o superiore, mentre quello Microsoft supporta Oracle a partire dalla versione 8.1.7. Attenzione, si parla di client e non di server, quindi con i driver client più aggiornati dovrebbe essere possibile collegarsi a un'istanza di Oracle meno recente come versione... però dove si usa Oracle magari ci sono tanti client e il deployment di un nuovo client Oracle non si può prendere alla leggera (per esempio potrebbe essere incompatibile con altre applicazioni client che usano versioni più vecchie del client - mi è capitato di vedere una situazione del genere ma era nel salto tra la versione 7 e la versione 8 di Oracle, dipende dall'applicazione client e non è un discorso che si può generalizzare).

Webcast su Garbage Collection ed eccezioni in .NET

A novembre terrò due webcast per MSDN:

Ai link trovate il programma dei Webcast. Anche se le sessioni sono relativamente introduttive, il tempo a disposizione e la focalizzazione su un argomento specifico consentiranno anche di andare a fondo su alcuni dettagli e, soprattutto, di rispondere alle domande dei partecipanti (il bello del webcast in diretta è che si tratta di una sessione interattiva). Per chi se li perdesse "live", è sempre possibile rivedere la registrazione anche successivamente.

Sul sito MSDN trovate anche il programma completo dei prossimi webcast.

Riconoscimento italiano con TabletPC: prime prove

Ho installato il riconoscimento della calligrafia in italiano per il TabletPC di cui ho parlato ieri.

In linea di massima funziona. Prima di tutto qualche avvertenza: dopo averlo installato è bene riavviare il PC (anche se non viene richiesto) e impostare la lingua di riconoscimento per i programmi in cui lo si vuole usare (il default è ancora l'inglese): per esempio io l'ho fatto su Windows Journal.

Il controllo di inserimento generico (il sostituto della tastiera) è fatto benissimo: è molto facile correggere gli eventuali errori di riconoscimento (o di scrittura) e trovare la lettera o la parola giusta. Molto rapido e intuitivo, direi. Anche la tastiera flottante è molto comoda. Ma tutte queste funzionalità fanno parte dell'aggiornamento ottenuto con XP Service Pack 2 (che di fatto trasforma il sistema operativo in TabletPC 2005).

Per giudicare bene il riconoscimento della calligrafia dovrò fare delle prove con alcune "cavie". La mia scrittura è oggettivamente poco comprensibile, soprattutto se inizio a scrivere in corsivo. Il vero problema è che non sono più abituato a scrivere a mano e quando devo farlo, anche se solo per i miei appunti, scrivo in stampatello minuscolo. Se scrivo in corsivo vado più piano e faccio veramente fatica: questo è il risultato di anni di tastiera... Il mio stampatello viene riconosciuto piuttosto bene (a parte quando sbaglio a scrivere... ci vorrebbe un sistema per cancellare velocemente senza usare la gomma) mentre per il corsivo i risultati sono deludenti... ma come ho detto credo che sia io che scriva in modo deludente e non il computer a non capire.

Ora riproverò a utilizzare il Tablet più spesso e tra qualche settimana vediamo come va l'esperimento. Certamente se qualcuno vuole fare applicazioni che sfruttano il Tablet per il mercato italiano, finalmente ha il pieno supporto anche del sistema operativo!

TabletPC con riconoscimento italiano: finalmente!!

Da due giorni è disponibile il Tablet PC Edition 2005 Recognizer Pack. Finalmente è disponibile il riconoscimento della grafia in italiano!

Non c'è ancora il riconoscimento vocale ma è già un passo avanti. Spero di avere tempo nel week-end per installarlo e provarlo.

Google Desktop: prime impressioni

Questa notte Google Desktop ha indicizzato il mio hard disk. In realtà non ha finito, manca un po' di diagnostica su quello che fa durante le operazioni di scansione: per capirci, non so bene dove sia arrivato e quanti file e messaggi debba ancora indicizzare. Partiamo quindi dalle note negative:

  • Va installato come utente admin (anche se poi si può riportare l'utente a non-admin, quindi si eleva il privilegio del proprio utente per fare il setup e poi si torna indietro... perché il vostro utente non è admin, vero?)
  • Non fornisce informazioni su ciò che sta facendo e che deve ancora fare: la pagina Status dice solo quanti documenti ha indicizzato
  • Non indicizza i PDF (in assoluto questa è forse la carenza più grande)
  • Cercando sul proprio Hard Disk i doppioni sono tantissimi: spesso ci sono mail e documenti che contengono molte informazioni pressoché identiche. Un raggruppamento "logico" di queste informazioni sarebbe auspicabile.
  • Non si può specificare di effettuare una ricerca solo all'interno di alcune cartelle del proprio Hard Disk: il parametro site consente di specificare un sito ma non funziona per le directory locali.
  • Non indicizza file XML. In pratica, non indicizza i feed dei blog gestiti da SharpReader.

Adesso però veniamo alle note positive.

  • La velocità è sbalorditiva. Sbalorditiva.
  • I risultati di una ricerca sono organizzati molto bene.
  • Le mail indicizzate sono visualizzate prima in formato testo/HTML all'interno del browser e solo in un secondo tempo si può aprire Outlook. Velocissimo e comodissimo.
  • Non occupa tanta RAM. Di tutte, forse questa è la cosa più importante per tenerlo "ospite" senza preoccuparsi troppo.

Altre considerazioni:

  • Al momento gli indici creati sul mio disco occupano 650Mb e ho un disco da 40Gb (è un notebook). Credo che aumenterà ancora perché l'indicizzazione non è ancora finita.... comunque 1Gb è un volume accettabile per avere certe prestazioni, secondo me.
  • Spiando con File Monitor il comportamento del motore di ricerca si può osservare come non sia stato usato il file mapping per adottare una strategia basata sull'accesso ai file tradizionale. Ci sono innumerevoli letture di piccoli blocchi da 4 byte, poi da 200/500 e poi da 4096 byte. Traduzione per i non addetti ai lavori: potrebbe essere molto più veloce se usasse tecniche di file mapping, ma evidentemente non ne ha nemmeno bisogno!
  • Questo coso potrebbe cambiare il modo in cui usiamo il computer. Chi se ne importa di ricordarsi dove abbiamo salvato un file: tanto poi c'è Google.
  • Privacy: se avete qualcosa da nascondere sul vostro PC... toglietelo! In realtà si può configurare l'esclusione di alcune directory e di alcuni file dall'indicizzazione, però non si può fare altrettanto per le mail: tramite Outlook indicizza tutti i PST aperti.
  • Security: mi sembra di aver capito che non consenta a un'applicazione qualsiasi di connettersi e fare le ricerche (anche se la cosa andrà approfondita meglio). Se però un'applicazione riuscisse a connettersi con il motore locale (che apre la porta 4664 in HTTP) e a fare le query... sicuramente avrete un file dove memorizzate le password, vero? Il mio (con i codici dell'home banking) l'ho trovato praticamente subito. L'encryption NTFS non serve perché Google Desktop gira con lo stesso utente. Bisogna usare un sistema per fare encryption del file con altri sistemi, oppure ricordarsi di escludere la directory da ciò ch Google Desktop indicizza. Avere Google Desktop sul proprio PC significa che lasciare il PC non presidiato per 30 secondi è pericolosissimo, ancora di più di quanto non lo fosse senza questo magnifico gioiello di tecnologia.

Come tutte le cose, ci sono dei pro e dei contro. Considerando che è la prima versione e che è una beta, c'è comunque da essere ottimisti. Questa è vera innovazione nel modo in cui si usa il PC. ora che Google ha fatto la prima mossa, bisogna vedere la risposta di Microsoft. Che non potrà arrivare nel 2006, due anni di vantaggio sarebbero veramente troppi.

Google Desktop in beta!

Grazie alla tempestiva segnalazione di Alessandro Perilli, ho scoperto che è appena partita la fase beta di Google Desktop.

La notizia è importante per due aspetti:

  • Google si lancia nel mondo del software desktop (anche se non è proprio così... spiego dopo)
  • Questa è una tecnologia su cui Microsoft è terribilmente indietro

Sto iniziando ora a sperimentare il software. Un primo problema è che non sembra compatibile con il Firewall Client di ISA Server 2000 (la versione 3). Dice di volere una versione 4 di questo componente ma non mi risulta che ci sia per la vecchia versione di ISA Server (che però è quella che sto usando). Ho aggirato il problema disinstallando il Firewall Client, installando Google Desktop e poi reinstallando il Firewall Client. Quando Google Desktop parte si arrabbia un po' perché non c'è una versione che gli piace del firewall client ma ignorando l'avvertimento per ora sembra funzionare.

UPDATE: ho installato il client di ISA Server 2004, che funziona anche con ISA Server 2000. Non ci sono problemi di sorta e il messaggio di errore di Google Desktop è sparito.

Prime impressioni:

  • è dannatamente veloce nelle ricerche
  • occupa poca memoria
  • consuma poca CPU
  • durante l'indicizzazione (che avviene sempre quando il pc è in idle) ovviamente smanetta sul disco, ma non appena si inizia a usare il PC si ferma, senza apparentamenti code di rallentamento
  • è piccolo: la directory con il programma installato occupa circa 1Mb
  • si basa comunque sul browser internet per l'interfaccia utente

Tecnicamente si tratta di un'applicazione che genera alcuni processi: uno di questi gestisce l'interfaccia utente comunicando con il browser internet su una porta particolare (la 4664, ma non ho ancora capito se è fissa o variabile); gli altri processi gestiscono l'indicizzazione.

Per ora ho fatto le prove su una macchina di test. Ora provo con il mio notebook, che ha tanti tanti dati... domani vedremo se questa cosa funziona veramente. Se funziona come spero, beh, Microsoft dovrà correre e aspettare il 2007 per WinFS... magari poi nessuno ne sente più il bisogno... ma è presto per fare bilanci. Proviamo e vediamo.

Feedback per la prossima edizione di Windows (Longhorn?) Server

Microsoft ha messo a disposizione https://www.windowsserverfeedback.com/, un sito su cui è possibile dare il proprio feedback e consigli per le funzionalità del prossimo Windows Server (o sarà Longhorn Server? Ma il nome non è poi così importante...). Come nello stereotipo cinematografico dei matrimoni... se qualcuno ha qualcosa da dire parli ora o taccia per sempre (o per lo meno fino alla prossima release).

O/R mapper, sì o no

Ho appena letto questo post di Frans Bouma che riassume molto bene i termini della disputa: usare un O/R mapper oppure no?

Premesso che non sempre si può essere d'accordo con Frans (famoso il battibecco con Stanley Lippman), questa volta mi trovo concorde nel valutare i due (anzi 3) scenari possibili più come strumenti a disposizione secondo le esigenze e la modalità di sviluppo di ciascuno che non come strategie conflittuali di cui una è giusta e l'altra sbagliata.

Alla luce della mia esperienza devo dire che il modello relazionale (casi 1 e 2 nel post di Frans) più si addicono a problematiche tipicamente "gestionali", mentre il modello O/R (caso 3) è più indicato quando il database è semplicemente una persistenza di un modello a oggetti più o meno complesso, situazione che si verifica più spesso in applicazioni scientifiche o di modellazione di eventi reali (si pensi alle previsioni del tempo, al monitoraggio del traffico, alla gestione di una flotta).

More Posts Next page »