aprile 2004 - Posts
Tra pochi giorni inizieremo una campagna informativa più ampia (anche tramite MSDN) per segnalare le due edizioni di DevLeap Conference 2004, a Bologna 11 e 12 maggio e a Napoli 22 e 23 giugno.
Ricordo che i posti sono limitati, quindi avete ancora pochi giorni di "calma" per essere sicuri di trovare ancora posto. Se avete degli amici a cui volete consigliare di venire... fatelo al più presto, da lunedì non appena raggiungiamo il limite di posti chiudiamo le iscrizioni, e chi c'è c'è... Per informazioni logistiche e iscrizioni andate qui.
Microsoft ha messo a disposizione (come download separato dal Data Mining Resource Kit, dove erano già presenti) i controlli di Data Mining per la visualizzazione su client che sono già presenti su Analysis Services: Tree Viewer, Cluster Viewer e Lift Chart.
Sono 10 Mb circa disponibili qui, dovrò verificare se è la stessa versione del Resource Kit o se hanno cambiato qualcosa...
Eric Sink segnala questo libro: Coder to Developer. Il titolo è intraducibile in italiano senza perdere l'efficacia della versione originale.
L'obiettivo del libro è di spiegare tutto quello che uno sviluppatore deve sapere oltre a ciò che è ovvio (saper scrivere codice): source control, eccezioni e assert, esame del sorgente, tool di generazione del codice, bug-tracking, loging, ecc. ecc.
A questo punto potrebbe pensare: lavoro in una piccola software house (in gergo ISV, Independent Software Vendor) che non ha le risorse per fare tutte queste cose...
Grave errore: un ISV basa tutto il suo fatturato sul software che produce. Tutte queste cose che ad alcuni sembrano un esercizio di stile sono in realtà finalizzate a migliorare la qualità e la manutenibilità del prodotto finale.
Ogni progetto software, per un ISV, è un investimento a lungo termine. Quanti sono i prodotti realizzati in tutta fretta, che inizialmente destano interesse per l'idea o per l'affrontare un certo problema in un mercato verticale e che poi soffrono di infiniti problemi di stabilità e di costi vertiginosi (per l'ISV) di manutenzione? Questo determina (economicamente parlando) un grande freno alla capacità di un ISV di crescere. Non dico che tutti dovrebbero organizzarsi come se fossero Microsoft, ma tra il non fare nulla e il fare tutto il possibile ci sono tante possibilità.
Quando faccio queste considerazioni, spesso vengo accusato di ignoranza della situazione reale del mercato. Credo invece che sia proprio il mercato a compiere la sua selezione darwiniana. Che magari non è veloce, ma è inesorabile.
Questa sera ho letto un post che segna una prima piccola ma autentica conquista di Microsoft con Longhorn. Il suo valore è in realtà molto relativo, perché ancora non parliamo di mercato reale...
Miguel de Icaza fa alcune considerazioni sul futuro di Linux con Longhorn.
Miguel mette in guardia le persone della comunità open-source dal pensare che ogni singola parte di Longhorn (XAML, Avalon, WinFS e quant'altro) sia qualcosa di già fatto e già disponibile in Linux, con vari tool, librerie e prodotti... o che qualsiasi "gadget" sia qualcosa che la comunità open-source può rifare in pochi giorni...
La potenza di Longhorn sarà quella di fornire insieme tutte queste tecnologie e Longhorn sarà rilasciato (con una vaga allusione all'inconcludenza di alcuni progetti nel mondo open-source) e sarà anche usato...
Cosa c'è di strano, direte? Niente, se non fosse che ho incontrato Miguel durante PDC e posso testimoniare personalmente che Miguel sta facendo autocritica anche verso se stesso.
Saper tornare sulle proprie idee è un segno di saggezza.
Ovviamente la partita è ancora tutta da giocare e Miguel non vuole certo gettare la spugna, ma è la prima voce autorevole "non allineata" che riconosce le potenzialità di Longhorn e i pericoli potenziali che pone alla crescita di Linux...
A maggio farò tre giornate di seminari a Milano su vari argomenti, con ripetizione degli stessi a Roma tra giugno e luglio. Gli eventi fanno parte di una serie di giornate tecniche chiamate TechTalk - si tratta di eventi a pagamento e non sono organizzati da DevLeap.
Per chi è interessato allego una breve descrizione dei titoli e dei contenuti. Per altre informazioni di tipo logistico-organizzativo fate riferimento al sito TechTalk Premiere.
Architettura Win32
Lunedì 17 maggio 2004 (Milano)
Mercoledì 14 luglio 2004 (Roma)
Windows NT, 2000, XP e 2003 hanno una base comune che, sin dalle prime versioni, è evoluta mantenendo un’architettura ancora oggi attuale, tanto che continuerà a essere usata nelle versioni future. Parliamo del kernel di Windows, che offre i principali servizi di base di un sistema operativo: gestione della memoria, dei processi, dei thread e servizi di I/O.
L’obiettivo del seminario è di fornire a programmatori e sistemisti una maggiore consapevolezza del funzionamento dei servizi usati da qualsiasi applicazione, per migliorare le proprie capacità sia di progettazione sia di troubleshooting di applicazioni Win32, siano esse scritte in VB, C++ o in un linguaggio .NET.
Business Intelligence
Martedì 18 maggio 2004 (Milano)
Giovedì 15 luglio 2004 (Roma)
L’attività di analisi dei dati con piattaforme di Business Intelligence (BI) è sempre più importante e diffusa nelle realtà aziendali. In questa giornata saranno presentati i concetti alla base di un sistema di BI, come Data Warehouse, Data Mart, database OLAP e Data Mining. Attraverso l’uso di dati provenienti da scenari reali, sarà illustrato passo-passo come realizzare una soluzione completa partendo da un database relazionale, esaminando i prodotti usati, le tecnologie adoperate, lo sviluppo eventualmente necessario e le estensioni possibili. I temi trattati toccheranno sia il lato server che il lato client di una soluzione completa. Analysis Services è il prodotto server di Microsoft destinato alla Business Intelligence e sarà il principale strumento utilizzato in questa giornata.
Programmazione asincrona (multithreading) in .NET
Mercoledì 19 maggio 2004 (Milano)
Mercoledì 16 giugno 2004 (Roma)
La programmazione asincrona (multithreading) in .NET è resa più accessibile grazie alla presenza di molti strumenti che ne semplificano la sintassi, ma bisogna comprenderne i concetti per padroneggiare la situazione e poter progettare, scrivere e fare il debug di applicazioni multithread. L’approccio tradizionale usato da chi è abituato a programmi completamente sequenziali porta a commettere errori difficili da individuare, anche perché gli strumenti sono necessariamente diversi: basta dire che, di solito, il debugger è uno strumento piuttosto inutile per questi problemi…
La giornata comincerà con alcuni semplici esempi introduttivi, per poi analizzare i concetti fondamentali del multithread preemptive, definendo la relazione esistente tra thread .NET e thread del sistema operativo. Saranno poi approfonditi gli strumenti disponibili in .NET per creare operazioni asincrone (thread, thread pool, chiamate asincrone, remoting) e per sincronizzarle tra loro (Monitor, Mutex, eventi, ReaderWriterLock).
Come segnalato da Chris Sells, Keith Brown inaugura una serie di articoli per MSDN dedicati alla security su Longhorn.
Nel primo articolo si descrive una cosa che farebbe tanto comodo già oggi: Application Impact Management (AIM) è un meccanismo che "isola" i file che un'applicazione eseguita senza privilegi amministrativi (LUA - Least Privilege User Account) tenta di scrivere (per es. qualcosa su C:\Program Files\...), fornendo al programma una copia del file richiesto, tanto per farlo contento, senza andare a scrivere l'originale.
Un effetto collaterale (che l'articolo non descrive) di questa tecnica potrebbe essere quello di "invalidare" automaticamente i controlli che alcuni programmi in versione valutativa fanno per verificare se è trascorso il periodo limite della prova.
Nel MSDN Security Roadshow io e Paolo stiamo facendo vedere una demo in cui usiamo una tecnica più "sicura" per questo tipo di esigenze, senza ricorrere a trucchetti e file nascosti. A fine mese le demo saranno anche disponibili on-line.
L'articolo di Keith Brown prosegue con la descrizione di una modalità chiamata "Protected Administrator", con cui un utente "amministratore" può eseguire delle applicazioni in un contesto di sicurezza più "ristretto". Oggi è buona abitudine lavorare con un utente non-amministratore ed eseguire solo alcune attività specifiche con un utente amministratore.
Con Longhorn è possibile "ribaltare" il concetto, per cui si entra con un utente amministratore ma tutte le applicazioni sono eseguite con un token che ha meno privilegi, salvo le applicazioni "registrate" per essere eseguite in un contesto di amministratore vero.
Attenzione: una differenza importante potrebbe essere che l'utente non è un utente diverso, ma lo stesso utente con un profilo di sicurezza diverso... dall'articolo non si capisce bene... l'utilità di questa condizione sarebbe il fatto di non ritrovarsi con due profili utenti diversi, che in molti casi è scomodo per come si fanno le cose oggi.
L'ultima parte dell'articolo è dedicata alla Code Access Security. Sì, perché tutto il resto lavora sui concetti "tradizionali" di utente e si applica a tutte le applicazioni, non solo a quelle scritte per Longhorn. Ovviamente tutto dovrà essere messo alla prova del fuoco, ma è confortante sapere che il lavoro non sia tutto rivolto esclusivamente alla security di applicazioni .NET: per tanti anni ancora dovremo usare applicazioni "unmanaged".
Sono aperte le iscrizioni al DevLeap Mobility Day: questo è il nome con cui abbiamo ribattezzato l'edizione 2004 di FWC (Future Web Conference).
L'evento si terrà a L'Aquila l'8 giugno, è gratuito ma bisogna registrarsi per tempo. Qualche informazione in più sulla nostra scheda evento e per tutto il resto (agenda, registrazione, informazioni varie) andate su http://www.fwc.it
Anche questa è una conferenza "no-frills"... Per fortuna L'Aquila costa meno delle solite metropoli ma il consiglio per chi viene da fuori è di prendersi un giorno o due per godersi un po' il posto, ne vale la pena (intendiamoci: è una cosa tranquilla, non pensate di trovare una metropoli, anzi... ma c'è più vita notturna di quanto possiate immaginare, ci sono tanti studenti universitari).
Durante il MSDN Security Roadshow è successo che qualcuno, pur iscrivendosi correttamente alla sessione MSDN, è stato fatto accomodare nella sala della sessione TechNet (che peraltro dura tutto il giorno, e non soltanto il pomeriggio).
Segnalerò la cosa allo staff, ma se entrate in una sala e l'aria non vi sembra familiare (insomma... se non sentite parlare di linguaggi, librerie, ecc.), chiedete aiuto! :-)
Scusate se ho approfittato del blog per questa piccola comunicazione di servizio destinata a chi seguirà i prossimi eventi sulla security.
Non so quanto sia realmente utile, visto che non converte codice BDE o ADO.... ma grazie alla segnalazione di TheServerSide.NET ho scoperto che è stato rilasciato Delphi2CS, per convertire aplicazioni Delphi in C#, migrando l'uso di VCL in Windows Forms.
Dalla stessa azienda (Netcoole) da segnalare un convertitore VB6->C# (non supporta On Error, Screen, Clipboard, App e Data Control, principalmente), un convertitore ASP->J2EE (non so dire di che qualità) e un convertitore ASP->ASP.NET (anche qua non so dire quale sia la qualità).
Certo, tool come questi non posso reingegnerizzare un'applicazione trasformandola in object-oriented quando l'originale non lo era... Per questo motivo non credo molto in tool simili, ma se qualcuno ne sentisse il bisogno può sempre provare...
A saperlo non mi inventavo delle demo per le date del MSDN Security Roadshow ma facevo le prove direttamente sul sito di 187...
Repubblica segnala la vulnerabilità dei siti www.187.it e www.aliceadsl.it che ha messo "a disposizione" le informazioni sugli utenti registrati presso tali siti. La vulnerabilità era data dalla possibilità di fare SQL Injection nel sito. Se non sapete di cosa sto parlando e scrivete software (magari per il web), dovete assolutamente seguire una delle date del MSDN Security Roadshow e leggervi Writing Secure Code. Al più presto...
Mercoledì 21 aprile tengo un seminario di mezza giornata (nel pomeriggio) su Windows Internals a Pisa, presso la Facoltà di Ingegneria.
Qui trovate tutte le informazioni e le informazioni per l'iscrizione (gratuita).
Leggendo il numero di certificazioni MCSD.NET aggiornato al 15/01/2004, sono rimasto stupito del valore incredibilmente basso: 5.170 in tutto. Anche il numero di MCAD.NET (che è una certificazione intermedia) è relativamente basso: 12.339... Se si pensa che il numero di certificati MCSD è 44.724, che il numero di MCP (chi ha passato almeno un esame qualsiasi di certificazione) è 984.394 e che il numero di MCSE Windows 2000 è 236.442, si può comprendere come i numeri degli sviluppatori certificati resti comunque basso.
I motivi sono molteplici, ma sicuramente posso testimoniare che sicuramente il problema non è la difficoltà degli esami. Chi ha una certa esperienza di sviluppo in .NET non dovrebbe avere particolari problemi a passare gli esami; chi sta ancora imparando senza avere un progetto specifico tra le mani può invece usare gli esami come obiettivo minimo da raggiungere. Dunque il motivo è un altro, probabilmente il fatto che le certificazioni non sono così importanti per un programmatore, che può essere valutato con altri criteri.
Una volta tanto il discorso non è solo italiano ma si estende un po' a tutto il mondo, perché i numeri di cui parlavo sono globali. Non conosco le cifre del solo mercato italiano, ma sicuramente parliamo di piccole frazioni dei valori precedenti. Tra poco usciranno due nuovi esami (70-330 e 70-340) sull'implementazione della security in applicazioni .NET. Probabilmente non sarà un esame che tutti daranno di corsa, però affronta alcuni aspetti del Framework che non sono trattati negli altri esami.
La mia idea sugli esami di certificazione è la seguente: di per sé non garantiscono nulla, ma se uno è bravo non dovrebbe avere problemi a passarli. Se a un colloquio (mi capita di fare da consulente per la selezione del personale) una persona mi dice che non li ha mai dati per motivi di tempo, gli chiedo entro quanto tempo potrebbe conseguire MCSD.NET se fosse un requisito indispensabile. Se mi dice che secondo lui sono inutili, gli chiedo come fa a saperlo, visto che non ne ha mai dati. Se mi dice che non servono perché nessuno li riconosce o concede un aumento per aver conseguito una certificazione... non dico niente. Ma quest'ultimo è il caso in cui la sua candidatura è nella condizione peggiore.
Ovviamente il mio è uno dei tanti punti di vista. Mi piacerebbe sapere cosa ne pensano i lettori di questo blog. Se trovate un minuto, scrivetemi.
Christian Civera segnala di aver realizzato un'utility che genera le differenze tra gli assembly di .NET 1.1 e la prossima 2.0 (Whidbey, attualmente in alfa). E' un modo comodo per capire quanto le nuove funzionalità possono "toccare" i propri programmi.
In generale nella nuova versione non ci sono cose in meno o cose diverse (la compatibilità dovrebbe essere buona), ma la presenza di nuovi metodi e nuove classi può suggerire quando sia il caso di "limitare" l'aggiunta di classi proprie cercando di mettere il minimo indispensabile se c'è poi qualche funzionalità, nella versione 2.0, che potrà essere utilizzata sostituendo parte del proprio codice.
Su MSDN è da poco disponibile questo documento che fa chiarezza su alcuni aspetti delle PivotTable di Excel collegate a cubi OLAP di Analysis Services.
Niente di particolarmente nuovo o che non fosse già presente in qualche articolo di knowledge base, ma è utile avere un riassunto sintetico. Tra le varie segnalazioni che si trovano, ne segnalo tre molto importanti:
- finalmente una spiegazione del perché Excel non usa NonEmptyCrossjoin
- un rimando all'uso della proprietà "Non Empty Behavior" per migliorare le prestazioni delle query NON EMPTY (che Excel fa in continuazione)
- la PivotTable di OWC a volte è più veloce di quella di Excel: è una base di codice diversa e scarica solo i dati delle righe visibili a video, mentre Excel scarica l'intero risultato della query prima di visualizzarla
C'è anche un rimando alla stringa di connessione, argomento di cui ho parlato in un articolo sulle prestazioni delle query MDX.
Mi hanno segnalato questo articolo su Business 2.0 che parla del motore di ricerca di A9, spin-off di Amazon. Ovviamente ero scettico. Poi ho fatto qualche prova... cosa dire... impressionante!
Sto facendo delle prove ma la qualità dei risultati delle ricerche è altissima.
Punti a favore:
- contenuti + aggiornati di Google
- precisione nelle ricerche molto alta
- storicizzazione delle ricerche (opzionale)
- ricerca integrata nei libri (attraverso Amazon)
- usa lo stesso account di Amazon (se uno ce l'ha) se si vogliono storicizzare le ricerche
- usa le info sui prodotti (nel mio caso libri) che ho comprato per personalizzare le mie ricerche
- info sul sito: si possono richiedere informazioni su un sito riportato nei risultati di una ricerca e vedere tutti i siti che vi puntano
Mancanze rispetto a Google:
- non si possono limitare le ricerche ai siti in lingua italiana
- non ha la funzionalità per vedere le pagine in cache
- velocità nel visualizzare i risultati: in particolare su Site Info, la pagina di risultati è un po' lentina
Ovviamente queste impressioni dei primi minuti vanno riviste con un uso più approfondito. Ho installato la A9 toolbar (insieme alla Google toolbar) e da oggi userò entrambi i motori. Tra un paio di settimane (almeno) proverò a tirare le somme.
UPDATE: ho già ricevuto dei feedback... In realtà (basta leggere in fondo alla pagina) A9.com usa (solo o anche?) i risultati di Google, insieme a dati di Alexa e Amazon. Viene da pensare che quindi non abbiano rifatto l'indicizzazione del web, ma abbiano "raffinato" i risultati di Google. Il risultato finale è comunque notevole, perché la contestualizzazione delle ricerche che faccio è molto più efficace quando passo da A9.com.
Altra mancanza è la conversione dei pdf in html. Ora, se ci fosse un Web Service di A9.com, si potrebbe pensare di farsi uno smart client che, incrociando i risultati dei due motori... :-)
Versione cache delle pagine... non so se non l'ho vista prima o se l'hanno aggiunta oggi pomeriggio, comunque c'è anche questa. Il risultato punta a Google.
Link:
http://www.a9.com
More Posts
Next page »