novembre 2007 - Posts
Leggo oggi sul sito del progetto che LOLCode è stato portato sul Dynamic Language Runtime.
Sghignazzi a parte (continua a essere davvero *LOL* ogni volta che lo guardo) credo sia significativo sottolineare come:
- Una prima implementazione funzionante del compilatore è stata realizzata in tempo estremamente breve ... in altri termini "al volo" (nel vero senso della locuzione, cioè in aereo)
- Ne esistono due implementazioni, una delle quali direttamente dal team del DLR
- Linguaggi dinamici anche estremamente differenti (almeno sintatticamente) possono essere appoggiati sul DLR e guadagnare, come minimo e gratuitamente, quella tonnellata di funzionalità che .NET espone
- Il DLR semplifica la vita di chi scrive compilatori perchè, ferma restando la necessità di farsi da sè il proprio parser, la parte di generazione di codice almeno la si può delegare (e non è poco)
Vi segnalo l'articolo di Martin Maly (autore del "porting"), che peraltro è pure una piacevole lettura panoramica sulla collocazione del DLR, e il blog di John Lam per un reference "ufficiale". Scott Hanselman, infine, ne aveva parlato qui.
Meowwww
Joel Oleson ha scritto di recente un post dettagliato che illustra una serie di best-practices per la configurazione degli application pool in un'infrastruttura SharePoint.
Merita una lettura !
Tra l'altro Joel segnala un tool di gestione "rapida" del recycle e del warm-up: sviluppato da Spence Harbar, è disponibile al download gratuito qui.
L'ho appena installato e devo dire che è estremamente intuitivo (un'icona nella tray area con relativo menu, una pagina di configurazione in cui si possono indicare gli URL da warmuppare).
Una chiccha ? Il tooltip delle voci di menu (una per Application Pool) che indica il PID del worker process relativo. Debug made easier :-)
La cosa è deducibile anche in altri modi (ProcessExplorer, per dirne una, mostra la command line dei processi attivi, e il nome dell'AppPool viene passato al processo w3wp.exe come parametro -ap). Ma di fatto credo che questo ApplicationPoolManager sia un tool davvero semplice e comodo.
Ho appena terminato un'esperienza davvero interessante di formazione "custom", che voglio condividere perchè mi ha dato spunti piuttosto particolari.
La particolarità non sta negli argomenti (che, anzi, gira e rigira sono sempre quelli, logicamente) ma nel format un po' sui generis.
Per farla breve, custom nel senso di:
- Percorso didattico custom (con la necessità di organizzare un minimo di flusso continuo degli argomenti, cosa non semplice data la varietà degli stessi)
- Materiale custom (slide, snippet, esempi e ~lab)
- Aula custom (la sala di casa mia, più custom di così)
- Cathering custom (il caffè della mia superabusata macchina espresso, qualche brioche ...)
- Orari custom (anche se più o meno stabili)
Che poi, se penso al tempo delle lezioni che si davano all'università per tirar su due lire, oggettivamente ci sono un po' di punti di contatto :-P
Più seriamente, le mie considerazioni sono queste.
Premetto che non amo i corsi "standard", preconfigurati e rigidi (discorso trito e ritrito e già affrontato più volte, per i MOC in primis).
Non è solo una questione di gusto personale (che dovrebbe chiaramente passare in secondo piano nel momento in cui si offre un servizio per cui si viene pagati), ma una considerazione più allargata sulla validità didattica. Sa un po' di facile demagogia, ma davvero credo che la flessibilità e l'adattamento ai requisiti specifici siano un valore aggiunto determinante, se opportunamente direzionate sulla base di una linea didattica che deve comunque essere presente.
Ma in questa occasione il fattore "custom" si è esteso (prima volta che mi capita) anche ai risvolti logistici. Cosa che ovviamente ha contribuito a rendere più diretto e semplice anche il rapporto personale con la persona che è venuta a sorbirsi 6 giornate di me che parlo.
Quindi i discorsi puramente tecnici si sono inframmezzati a chiacchiere pseudo-tecniche, considerazioni sul mercato del lavoro, caffè (l'ho già detto ?), belinate, ...
La cosa ovviamente mi ha fatto piacere perchè ha reso il lavoro meno "lavoro" e più "discussione aperta".
Il punto è che al di là del mio piacere personale credo che questo sia stato (e sia, in generale) un aspetto piuttosto cruciale per facilitare l'apprendimento (che nel caso specifico era complicato dall'enorme mole di info compresse per ragioni di tempo).
Almeno, questa è l'impressione che ho avvertito.
Leggevo (ma non ricordo dove) che la separazione dei ruoli docente/discente è necessaria per la didattica.
Chiaramente non è possibile fare un "bianco" o "nero".
Però ... dato che un minimo di separazione dei ruoli c'è per la natura delle cose ... quando si ha l'occasione di eliminare qualche aspetto che sottolinea questa separazione il risultato può essere di sicuro migliore.
Poi da qui a dire che (1) è sempre possibile farlo e (2) funziona sempre ... certo, ne passa: d'altra parte sono discorsi che vertono sull'adattamento e sul coinvolgimento, di conseguenza sono estremamente legati alle persone (da entrambi i lati della cattedra - tavolo della sala).
Diciamo che questa volta è andata bene. Mi piace il mio lavoro :-)
Kindle è (dal blog di Rob Tiffany)
[...] mobile reading device today that uses a high-resolution, electronic paper display to read books, newspapers, blogs and magazines on-the-go. [...]
Sullo store Amazon ovviamente i dettagli e i commenti sono numerosi (e, tra l'altro, il device è sold-out e va pre ordinato, almeno nel momento in cui scrivo).
Personalmente non sono mai stato un fan degli eBook, almeno non come fonte di consultazione primaria di un libro: di solito, se riesco a "mettere le mani" su un pdf lo uso come verifica pre-acquisto o come storage elettronico indicizzabile e trasportabile per le occorrenze.
Insomma, sono assolutamente convinto che il libro di carta sia insostituibile, non solo per la comodità (o abitudine ?) di consultazione, ma anche (e soprattutto) per la tangibilità dell'oggetto: che si consuma, si ripone e si colleziona anche.
C'è da dire però che :
- La difficoltà di lettura su dispositivi mobile non ha mai smosso questa mia convinzione
- Le premesse per questo nuovo device sembrano più che buone
- Adoro i vari gingilli hi tech
- Il dollaro è sempre meno caro
- Natale è alle porte
Un pensierino ...
Aspettiamo di sentire un po' cosa ne dice la blogosphere :-)
Che VS2008 sia stato rilasciato (in RTM) è ormai cosa nota.
Vorrei invece segnalare una serie di screencast disponibili su Channel9, di livello piuttosto introduttivo ma che forniscono una buona panoramica su alcune delle feature del nuovo Framework e d tutti gli annessi e connessi.
Featuring:
Qui è disponibile il Training Kit relativo, con demo e materiale documentativo (per quel che mi riguarda è in coda al download di VS ...):
Qualche tempo fa avevo scritto alcune note relativamente ai fattori che determinano la riuscita di un corso di formazione, parlando anche della struttura e dell'attrezzatura delle aule.
Di recente ho tenuto un corso one-to-one un po' sui generis che, in mancanza di lavagna, mi ha portato a dar prova delle mie note (!!!) capacità grafiche e illustrative.
Ecco il risultato:

Forse questi sono piccoli segni che mi dovrebbero suggerire di cambiare lavoro ...
Ultimamente mi sono trovato ad affrontare (quasi) contemporaneamente due scenari di migrazione completamente differenti verso sistemi SharePoint (da Lotus Notes in un caso, da un archivio poco organizzato di documenti nell'altro) e a raggiungere le stesse identiche considerazioni.
Ricordo, peraltro, con chiarezza e con piacere un paio di interventi effettuati durante la recente SharePoint Conference (mi riferisco alla keynote di Roberto D'Angelo e alla sessione mattutina di Igor), durante i quali sono emersi un paio di punti sui quali vale la pena soffermarsi.
A questi mi riallaccio per qualche considerazione generale sul concetto di migrazione di dati, che trascendono la tecnologia specifica (SharePoint) anche se vi trovano un'esemplificazione estremamente efficace.
Spero di riuscire ad essere organico nel proporre il mio modo di vedere la cosa.
Come di consueto, ecco wikipedia:
Data migration is the process of transferring data between storage types, formats, or computer systems. Data migration is usually performed programmatically to achieve an automated migration, freeing up human resources from tedious tasks. It is required when organizations or individuals change computer systems or upgrade to new systems.
I dati ... i dati, chiaramente, sono essenziali e centrali. Ma non sono l' unico aspetto del sistema che va considerato.
Condizione necessaria è che il dato sia preservato (pena l'impossibilità di utilizzo del sistema nuovo in completa sostituzione del precedente). Ma tale preservazione non è sufficiente, poichè non considera la contestualizzazione del dato stesso (quello che lo rende, in senso più esteso, informazione).
Faccio un esempio un po' forzato, ma credo abbastanza calzante in alcuni suoi punti.
Una frase è costituita da parole. Ognuna di esse ha il suo valore anche a prescindere dalla frase nella quale è inserita. Una frase è, però, compiuta solo se le parole che la formano (= la loro successione ordinata) rispettano le regole sintattiche e le declinazioni che il linguaggio prevede. E se il significato che ne deriva ha un senso e dà luogo, in ultima analisi, ad un discorso logicamente valido.
Avete presente le famigerate traduzioni automatiche ? (Se volete farvi due risate e non avete voglia di inventare una frase da dare in pasto al tool di turno, leggete questo post di Rob).
Sono perfettamente funzionanti sui singoli termini. Sono decisamente carenti sulla frase nel suo insieme.
Se la cosa sembra palese e scontata parlando di traduzioni, proviamo a calarla nel contesto delle migrazioni.
Il tool di migrazione automatica ? Paragonatelo al traduttore di google (o chi per lui).
[Includo, per inciso, nella categoria "tool di migrazione automatica" anche il copia e incolla di una intera struttura di folder da un file share ad una document library SharePoint (esperienza diretta)]
Preserva il dato (in caso contrario, semplicemente, è bacato). Ma perde nella maggior parte dei casi il contesto. Perchè non riesce a desumerlo dal sistema di origine e/o perchè non riesce a riprodurlo nel sistema di destinazione.
Conseguenza ? I dati ci sono. Ma meno usufruibili di prima.
Conseguenza della conseguenza ? La piattaforma nuova viene giudicata scomoda. E occhio, perchè capita che sia il sistema ad essere giudicato scomodo, in luogo della sua implementazione.
Personalmente credo che non sia utile sia dannoso affrontare una migrazione di dati prescindendo dalla loro organizzazione e dalla loro collocazione all'interno del sistema informativo nel suo complesso.
Se tali aspetti mancano, si perdono o semplicemente non vengono considerati, la migrazione perde il 90% della sua complessità. Ma, appunto, di migrazione non si può parlare ! Chiamiamola copia, chiamiamola cut&paste !
Il processo di migrazione, per come lo vedo io, non dovrebbe condizionare di per sè la struttura del sistema di destinazione, portandosi dietro le particolarità e gli idiomi del sistema precedente.
I tool di migrazione vanno benissimo, perchè (cit. dalla definizione di cui sopra) consentono di automatizzare la trasformazione dei formati (fisici e logici). Compito noioso, ripetitivo e facilmente delegabile ad una macchina.
Però credo che il successivo intervento umano, nella progettazione, nelle ristrutturazione e nella risultante implementazione del nuovo sistema, sia assolutamente imprescindibile per un livello anche solo minimo di validità della soluzione finale.
Le migrazioni, secondo me, sono "difficili" per questa ragione, ancor più che per la (ovvia) necessità di superare i limiti tecnici che differenziano i sistemi.
In data 14, 15 e 16 gennaio 2008, a Berlino, si tiene il secondo MCT Summit EMEA.
L'anno scorso (se non sbaglio era in Svizzera) mi ero ripromesso di partecipare, salvo annullamento per cause di forza maggiore (lavoro, sigh).
Quest'anno ci si riprova.
Sperando che sia la volta buona per (1) Partecipare e (2) visitare Berlino !
Se qualcuno viene ... fate un fischio :P
Sempre curiosi i code-name ... questo fa un po' pensare al freddo e non è stagione in effetti, ma dietro si cela un'iniziativa volta a:
Simplify SOA, Bridge Software Plus Services, and Take Composite Applications Mainstream
Ne hanno dato l'annuncio alla SOA and Business Process Conference che è in corso a Redmond in questi giorni: qui la press release e alcune segnalazioni.
Parlare di iniziativa è piuttosto generico, d'altra parte probabilmente allo stato attuale delle cose (e delle info pubbliche) non è possibile contestualizzare molto più di questo.
Dalla press release si evince che lo sforzo sarà diretto verso una semplificazione (leggi: unificazione, leggi: consolidamento) nel design, nello sviluppo e nel deploy di applicazioni enterprise (leggi: Business Solutions, leggi: SOA).
Le aree coinvolte da questa "ondata" variano da .NET Fx vNext (la 4 ?) a BizTalk Server vNext ai BizTalk Services a Visual Studio 10.
Alcuni punti degni di nota, a mio parere:
- "moving from a world where models describe the application to a world where models are the application"
- "aligning the metadata repositories across the Server and Tools product sets"
Molti germogli ci sono o stanno nascendo, ma credo che ciò che farà la differenza sarà, come spesso accade, la disponibilità di un ambiente che renda il tutto integrato e "nativo".
Anche perchè il fatto che "Today, applications cannot easily span the boundaries between technologies, between business and IT, and between an organization, its suppliers and its customers" ce lo dicono da anni come premessa alle innovazioni (tecnologiche, di visione, di guidance, di package ...) atte a risolvere i problemi elencati.
Staremo a vedere (e la curiosità per qualche info ufficiosa e qualche beta cresce ... :-P)