posts - 584, comments - 2238, trackbacks - 209

My Links

News

Raffaele Rialdi website

Su questo sito si trovano i miei articoli, esempi, snippet, tools, etc.

Archives

Post Categories

Image Galleries

Blogs

Links

giovedì 19 agosto 2010

La poca chiarezza delle licenze

Ho sempre sostenuto che le licenze dei software purtroppo sono poco chiare se non incomprensibili per la maggior parte degli utenti e spesso anche per gli operatori del settore.

Diciamocelo chiaramente, in mezzo alla solita tiritera sopra il pulsante "accetto" è facile cambiare un paio di preposizioni e stravolgere il significato di un testo che, sulle prime, all'utente sembra il solito.

È per questo motivo che credo che BSA abbia fallito nel ruolo di difensore delle licenze in quanto non fornisce agli utenti gli strumenti per capire i reali confini scavati dalle licenze. Se non c'è chiarezza non ci può neanche essere il dovuto rispetto tantomeno contrastare quella autolegittimazione che molti utenti si attribuiscono nell'utilizzare in modo improprio il software.

L'autoleggitimazione è un sentimento, non un cavillo giudiziario che però fa un'immensa differenza in termini di pirateria. L'utente si può sentire giustificato ad utilizzare il software fuori dai confini della licenza se i termini non sono chiari fin dall'acquisto e purtroppo questo è oggettivamente vero per molte licenze.

Il panorama Open Source non è messo meglio. La GPL è probabilmente la licenza più violata dagli utenti e dagli operatori. Per dirla in modo (troppo) semplicistico la GPL è una licenza per software di cui sono disponibili tutti i sorgenti. Un lato meno conosciuto di questa licenza è che chiunque usi in una propria applicazione un software licenziato sotto GPL è obbligato a rilasciare la propria applicazione anch'essa sotto GPL e quindi rendere disponibili tutti i sorgenti pubblicamente. Conosco diversi casi di palese violazione. Ecco una delle tante pagine della vergogna: http://ffmpeg.org/shame.html

Per esempio il famoso database mySQL viene fornito con licenza GPL oppure con una licenza a pagamento. Sul loro forum un utente ha candidamente chiesto se usare mySQL in una applicazione implica rilasciare l'applicazione stessa sotto GPL. La risposta degli intervenuti (di mySQL) è sempre stata ambigua e alla fine non è riuscito ad avere i chiarimenti necessari.
Non stiamo parlando di domande complesse ma solo chiarezza su come utilizzare la licenza. Lo trovo totalmente assurdo.

Se passiamo alle licenze commerciali il caos regna ovunque: licenze per device, per processore, per utente, per gruppo di lavoro, per sviluppatore, per produzione, … ovviamente condite da una lunga serie di "ma", "se", "tranne", "nel caso in cui", e via così.
Se è questa la "educazione" che le software house vogliono fare verso gli utenti, si sbagliano di grosso.

Ora mi chiedo: perché un ente (per esempio BSA che si erge paladino dei produttori) non redige un numero (finito, come dicono i matematici) di licenze standard chiamandole con un nome o numero e obbliga le aziende che fanno parte di BSA ad utilizzare quelle tipologie?

Ovviamente in breve la cosa si potrebbe estendere a tutti i produttori software perché i vantaggi sarebbero evidenti:

  • Le controversie giudiziarie sarebbero più semplici da controllare in presenza di una licenza 'standard' e le interpretazioni dei giudici sarebbero meno interpretabili.
  • L'utente avrebbe davanti subito chiaro se è disposto ad usare una licenza "A1" invece di una "B2".
  • Le aziende potrebbero redigere policy per permettere l'acquisto e l'uso di licenze purchè non siano di tipo "C" e "D" (mesi di meno per prendere una decisione sull'acquisto di un software).
  • e via così …

Se qualcuno non ci vuole mettere mano allora comincio ad essere malizioso e pensare che tutto sommato la pirateria faccia comodo perché il prodotto si diffonde (ricordate Autocad negli anni 80?) e poi dopo che tutti sanno usare quel software e non ne possono fare a meno arriva "qualcuno" che ne obbliga l'acquisto. Bleah, che schifo.

E pensare che il mio mestiere è di produrre software e che siamo in azienda siamo ISV … no, non siamo masochisti, se il cliente è contento lo siamo anche noi.

posted @ giovedì 19 agosto 2010 13.09 | Feedback (10) |

lunedì 16 agosto 2010

Query Linq apparentemente errate in OOXML

Le query con Linq to XML sono tra le meraviglie di un developer managed. Infinitamente più semplici di DOM/SAX/XmlReader e con prestazioni da urlo.

Il team di Office ha disegnato un Object Model che mappa 1:1 il formato XML del nuovo formato ISO "Office Open XML". Da una parte questo approccio è poco conveniente perché è possibile generare documenti non well-formed, dall'altra offre vantaggi indiscutibili come quello di "Document Reflector" il tool dell'sdk che genera codice C# a partire da un documento docx/xlsx/pptx o ancora la possibilità di fare query Linq su questo object model come fosse quello di XDocument/XElement.

Ed è proprio da una query su questo object model che è nato un problema di una query apparentemente errata.

La query:

var fldchars = from e in doc.Descendants<FieldChar>() select e;

è equivalente a:

var fldchars = from e in doc.Descendants() where e is FieldChar select e;

ed ha lo scopo di trovare tutti i FieldChar (i field di un documento Word) nel documento a prescindere dal livello della gerarchia xml.

Eseguendo questa query su uno specifico documento usando Linq2XML ottenevo un risultato mentre sul sdk 2.0 di OOXML ritornava un elemento di meno.

Non ci sono bug. Se partiamo a credere subito nei bug prima di fare indagini, è meglio cambiare mestiere, punto.
L'indagine per capire cosa succede deve andare (come sempre) per passi. Quindi la prima cosa che ho fatto è di eseguire la query su tutto il documento:

var fldchars = from e in doc.Descendants() select e;

Query che restituisce tutti gli elementi del documento in modo 'flat' cioè senza più gerarchia xml.

Poi si sbircia nel debugger di Visual Studio per vedere la lista degli elementi e scopriamo che ….

image
L'elemento che mi aspettavo di trovare come FieldChar è stato 'mappato' da XML a OpenXmlUnknownElement che non è di tipo FieldChar e di conseguenza la query non forniva i risultati voluti.

Il file infatti l'ho modificato a mano per creare un test ad-hoc su una situazione molto particolare e perciò il test era sbagliato mentre il codice era giusto (chi testa i test? … va bene questa è un'altra storia).

Lesson learned, e spero che serva anche a qualcun'altro …

posted @ lunedì 16 agosto 2010 23.30 | Feedback (1) |

AddRange sulle collection

Purtroppo non c'è nessuna interfaccia che definisca AddRange sulle collection, quindi non c'è ICollection o IList che tenga.

A rimediare elegantemente ci pensano gli extension method che ci permettono di aggiungere AddRange in questo modo:

public static class CollectionExtension
{
    public static void AddRange<T>(this ICollection<T> list, IEnumerable<T> elements)
    {
        foreach (var e in elements)
            list.Add(e);
    }
}

Fatto questo, supponendo di avere una:  IList<qualcosa> collection = new ….;
basterà scrivere:  collection.AddRange(…);

IList infatti deriva da ICollection e quindi l'estensione di ICollection è la più appropriata.

Apparentemente si salva solo una riga di codice ma quando cominciate ad avere parecchio codice che usa Linq la pulizia di codice guadagnata fa una bella differenza.

posted @ lunedì 16 agosto 2010 13.40 | Feedback (5) |

venerdì 30 luglio 2010

Post-Windows 7, prossima fermata Service Pack 1 (ora in beta pubblica)

Ogni secondo vengono vendute 10 copie di Windows 7:
http://microsoftfeed.com/2010/10-copies-of-windows-7-sold-every-second-175-million-licenses-sold/

Lo stop subito da Vista non è stato solo dettato da un numero oggettivo di problemi, ma anche all'introduzione di un vastissimo numero di cambi all'interno del kernel che hanno messo in difficoltà utenti e developer.
La mia opinione è che gli utenti ci abbiano guadagnato in modo incommensurabile, mentre i developer sono arrivati "lunghi" per una serie di clamorose violazioni delle best practice già nelle versioni precedenti dei sistemi operativi.
Inutile lagnarsi dei cambiamenti, non cambiare significa fare la fine di Windows Mobile, ormai finito nella voce "altri" delle percentuali di mercato.
Inutile lagnarsi dei cambiamenti, le best practice erano lì da un bel pezzo, i white paper delle novità di Vista erano lì fin dalla prima beta pubblica ma in pochi le hanno lette. Il risultato è che molte illustri applicazioni sono finte nella "shame box" (xp mode).

Fatto sta che Windows 7, oltre ad una serie di novità importanti, ha curato molto di più tanti aspetti che invece con Vista erano stati decisamente trascurati, dalle performance alla memoria, dalla grafica alla stabilità.
La conclusione è che chi lavora bene ottiene risultati, Windows 7 sta andando a botte di record e i complimenti sono dovuti.

Perciò Windows 7 non è un traguardo ma è solo un altro paletto. La prossima fermata è la service pack 1 che porta buone cose. Ecco la mia lista dei perché installarla:

  1. Il motivo numero 1 in assoluto è di provare le applicazioni prima che sia disponibile la versione RTM. Non facciamo l'errore di attendere la nuova versione del sistema operativo o del service pack prima di testare la nostra applicazione.
    I test devono essere fatti sulla beta della service pack per tempo per due motivi:
    • Il vostro cliente deve scegliere quando installare la service pack senza dipendere dai vostri test. La sua sicurezza può dipendere da questa installazione e non siete voi a doverlo bloccare.
    • Eventuali problemi sulla service pack possono influire le beta/rtm successive. Inutile lamentarsi se i test vengono fatti sulla rtm e si scopre un bug della service pack. Ormai è troppo tardi.

      Qui non si parla di aiutare gratis Microsoft, ma è un modo per la software house di risparmiare dei soldi se l'applicazione non dovesse girare più su un parco potenziale di 175 milioni di macchine.
  2. Security. Questo è il motivo per cui non possiamo e non dobbiamo dire al cliente di attendere il nostro benestare prima di installare la service pack 1 sui suoi Windows 7.
    Perché le patch di sicurezza vanno installate sempre e subito?
    Perché la maggior parte degli attacchi nasce dalla disponibilità delle patch. Quando MS si accorge di un bug crea una patch e la rende disponibile agli utenti. L'hacker la scarica, magari è di poche decine di kb e fa presto a capire qual'è il pezzo di codice modificato.
    Così va a vedere il vecchio codice buggato, trova il problema in un istante e crea l'attacco. Alla diffusione ci pensano le reti di BOT sparse per tutta internet e mentre l'hacker è al mare in vacanza, il suo server raccoglie informazioni, password, e quant'altro sia possibile raccogliere grazie al bug.
    Certo non è sempre così semplice e Win7 fa girare i servizi con privilegi ridotti all'osso per diminuire la superficie di attacco, ma perché rischiare? Installare le patch è l'unica soluzione possibile.
  3. RemoteFX. Sono un utente in perenne roaming per l'ufficio e i terminal services (amministrativi) sono diventati un must. Anche ora che sto scrivendo sono in una finestra di TS. Con RemoteFX (disponibile tra 2008R2 SP1 e Win7 (>=enterprise) SP1) la user experience dei terminal services cambia radicalmente: USB, USB/PDA e supporto alla grafica spinta (Silverlight e Flash compresi).
  4. Restore previous folders at logon. Di default è disabilitato ma è una delle mie opzioni preferite. Dalla service pack vengono ricordate anche le posizioni delle finestre nella shell.
  5. Supporto al set AVX di istruzioni a 256bit presenti nelle nuove CPU. Io ho i7 sia sul desktop che sul portatile e questo può fare una bella differenza sui calcoli floating point.
    Purtroppo sono macchine che uso "per produzione" e quindi non posso installare una beta della SP. Quindi per testare questa feature dovrò aspettare un po'.

C'è molto di più per gli ITPro (per esempio per HyperV)…

La documentazione della beta della Service Pack 1 è qui:
http://www.microsoft.com/downloads/details.aspx?FamilyID=61924cea-83fe-46e9-96d8-027ae59ddc11&displaylang=en

Per i download link rimando al post ufficiale:
http://technet.microsoft.com/en-us/evalcenter/ff183870.aspx?ITPID=wtcfeed

e al sito di WinSuperSite:
http://community.winsupersite.com/blogs/paul/archive/2010/07/13/service-pack-beta-1-for-windows-7-and-server-2008-r2-direct-download-links.aspx

posted @ venerdì 30 luglio 2010 22.37 | Feedback (2) |

venerdì 11 giugno 2010

Il campo minato di VirtualBox

Io come tanti sono "costretto" ad usare VirtualBox per i noti problemi di Virtual PC sui portatili (il problema del timer e la scelta ristretta dell'hardware). A proposito propongo un "santo subito" per Russinovich e la sua utility Disk2VHD.

Le performance di VirtualBox sono notevoli, le macchine virtuali vanno a bomba, supporta i VHD e le USB (cosa che uso quasi mai ma è di "effetto").

Occhio però che:

  • Il bus USB dopo che ci giochi un po' si inchioda e devi fare reboot della macchina host
  • Se attacchi una iso ad una VM e poi fai un save state, la iso non la puoi più staccare. Se poi muovi fisicamente il file altrove, l'entry con il "!" sulla iso non puoi mai più toglierla. (Ma dico io, se metto in standby il pc, il CD posso sempre toglierlo dal cassettino eh)
  • Se poi faccio uno snapshot con un CD attaccato alla VM, quella ISO non potrò mai più toglierla fino a che non cancello lo snapshot. (Il developer di questa cosa è proprio un "genio" grrrr)

Ma i problemi "seri" vengono adesso …

  • Ho fatto export da un pc, dopo mezzo secolo ho finalmente un file OVF con tutto quanto dentro, poi vado sull'altro PC faccio un import …. e non funziona nulla. Un bell'errore generico (0x80004005) che puzza di security sul file system ma che invece non c'entra nulla. E mezza giornata cacciata al vento.
  • Non c'è modo di *spostare* i dischi e gli snaphsot da un HDD ad un altro dello stesso PC.
  • Il "delete snapshot" in realtà è "merge snapshot" (quanti geni nello stesso gruppo) e se non fai lo snapshot prima di fare la prima delete, perdi la situazione dall'ultimo snapshot allo stato attuale (altro genio, eh).

Per spostare i dischi virtuali l'unica soluzione è stata quella di fare merge (addio agli snapshot) e ricreare la macchina virtuale. Ogni tentativo di tweak dei file xml è stato vano. Chi ha questo problema faccia riferimento a questo articolo perché la documentazione è del tutto insufficiente.

Con VirtualPC editi un paio di file e fai quello che vuoi ma Linux ci gira una volta su 10 e purtroppo tanti altri problemi (come la dimensione del VHD tanto per dirne un'altra).

Virtualizzare è bello … quando funziona.

posted @ venerdì 11 giugno 2010 14.31 | Feedback (9) |

martedì 25 maggio 2010

Materiale workshop

Come promesso, il materiale della mia sessione sulle novità di WCF4 e WF4 è disponibile qui:

http://www.iamraf.net/Samples/Whats-new-in-Workflow-Foundation-40-and-Windows-Communication-Foundation-40

posted @ martedì 25 maggio 2010 8.34 | Feedback (13) |

venerdì 21 maggio 2010

La sintesi del contenuto della mia keynote di Bucarest

C'è chi mi ha chiesto di cosa ho parlato nella Keynote del lancio di Visual Studio 2010 a Bucarest e quindi ho pensato di bloggarlo.

Ho parlato di come si è evoluto lo sviluppo del software in tutti questi anni, un discorso a me molto caro. Sono partito dalle foto delle scatole dei miei compilatori (C 5.1 per DOS, MASM 5.1, e numerosi altre scatole fino a quelle di VC++6.0), in cui la pratica di sviluppo era sostanzialmente priva di ciclo di vita dell'applicazione, anche grazie alla semplicità architetturale della soluzione. Poi sono passato al mismatch che esiste tra la richiesta attuale di avere software con standard qualitativi da linea di produzione industriale nonostante il mestiere dello sviluppo software sia ancora artigianale, e naturalmente ai DSL come naturale evoluzione dello sviluppo software verso l'industrializzazione.

Il passo successivo è stato di sottolineare la grossa illusione che il deploy dell'applicazione sia un traguardo mentre il ciclo di vita dello sviluppo sia una spirale infinita in cui il buon design e la corretta architettura sono fondamentali. Con una domanda retorica ho chiesto chi fosse così coraggioso di fare un upgrade su un sistema che ha una cattiva architettura, nonostante le batterie di test fossero tutti positivi. Nella vita reale non ho trovato coraggiosi ma solo incoscenti.

Questo argomento mi ha dato modo di sottolineare che il valore del sorgente è un falso mito. Il valore più alto sono la progettazione e il servizio perché gli spaghetti-code sono spazio sprecato su disco.

D'altra parte creare buone architetture è pregevole ma può anche essere non praticabile. Per poter realizzare buone architetture in tempi accettabili è necessario avere a disposizione strumenti efficienti che sono un anello fondamentale nello sviluppo del software. Strumenti come Visual Studio 2010 con la generazione del codice, i grafici delle dipendenze, l'architecture explorer, oppure TFS2010 con i nuovi gated check-in e i test automatizzati sono ciò che rendono possibile mettere in pratica le architetture software che altrimenti rimarrebbero solo buoni progetti. Un esempio di tutto ciò sono i DSL che, senza adeguati strumenti, non sono una soluzione realistica adottabile in uno scenario pratico.

Non poteva naturalmente mancare a tutto questo un diretto riferimento alla sicurezza che deve essere parte integrante del ciclo di vita dello sviluppo a partire dall'architettura. Lo strumento in questo caso è il template di TFS2010 sul Security Development Lifecycle [SDL] (che arriverà molto presto), e i tool per la creazione dei Threat Model.

A causa di problemi tecnici ho potuto mostrare solo la demo sui test. Sono partito dal nuovo Test Manager 2010 pianificando un nuovo test manuale su una applicazione web dove non si vuole che siano specificate quantità negative. Una volta inserite le istruzioni testuali per il tester, sono andato nella sezione test e ho avviato il test manuale specificando di voler registrare le "action". Il Test Manager 2010 è infatti in grado di fare hooking sul DOM di un browser (anche di Winform e WPF e a breve Silverlight) e registrare tutte le azioni eseguite dall'utente.
Il passo successivo è stato di aprire il work item associato a questa registrazione da Visual Studio e inserire dal codice una "assert" usando un tool che mi  permette di scegliere la textbox da cui leggere il valore da confrontare. Lo strumento ci permette di scegliere visualmente la TextBox e generare il codice della "assert" con il valore desiderato (nel mio caso pur essendo stata inserita una quantità negativa, deve essere mostrato il valore "1" di default).
Una volta generato il codice ho fatto girare il test ... ed è fallito ;-) perché nel cart era già presente la quantità precedente (2) che non corrispondeva a uno. Grande (attesa) risata e stupore del pubblico e fine della sessione :)

Il mio feeling è stato positivo, nonostante i problemi tecnici ho cercato di essere giocoso e divertente e ho sentito più volte la platea ridere. Credo che il messaggio sia arrivato e spero che abbiano apprezzato il grande lavoro di preparazione necessario.

posted @ venerdì 21 maggio 2010 12.42 | Feedback (2) |

Workshop UGIdotNET v4

Voglio ringraziare tutti gli intervenuti ieri al workshop dove ho tenuto la sessione sulle novità di WCF 4.0 e WF 4.0. Spero che la stanchezza accumulata nel viaggio da Bucarest non si sia colta.

Sono realmente contento delle novità in Workflow 4.0 e WCF 4.0. Datemi solo il tempo di riprendermi e pubblicherò al più presto le demo che ho mostrato durante questa lunga carrellata di novità che ci permetteranno di semplificare e migliorare le nostre applicazioni.

Fantastica anche la serata a cui non ho potuto rinunciare con tanti amici delle community con cui condivido la mia passione per queste tecnologie.

Alla prossima!

posted @ venerdì 21 maggio 2010 10.17 | Feedback (2) |

Thank you Bucarest!

I am just back from my trip. On May 19 I had the pleasure to launch Visual Studio 2010 family in Bucarest. Giving the keynote in front of 400 strong developers, television and photographers was really exciting.

I wish I had the time to make this post yesterday, but I leaved from Bucarest at 4:30am (3:30 Italian time) in order to be in Milano for the UGIdotNET event where I talked yesterday about the new features in WCF 4.0 and WF 4.0.

My passion drove me and my keynote from the early days of programming in C language under DOS through new modern tools that let the developer express his most hidden design dreams.

There were some technical problems with the demo Virtual Machine that changed a little bit the presentation's outline but this could not change the essential concepts of my presentation.

I want to express a big thank you to all the people who attended the conference for the warm welcome, Microsoft Romania for the invitation all the other speakers for their support, and Adrian that has been my Cicerone through the beautiful buildings of Bucarest.

See you soon!

posted @ venerdì 21 maggio 2010 10.11 | Feedback (2) |

martedì 11 maggio 2010

WPF e MVVM possono essere un boomerang

Nel weekend ho finito le demo dell'imminente workshop UGIdotNET del 20 Maggio. Nella demo della discovery di WCF4 ho costruito per la parte client una Console e poi una micro applicazione WPF per mostrare meglio i risultati.

Come d'abitudine sono partito impostando il progetto con MVVM e ho cercato di non esagerare per lasciare l'esempio il più pulito possibile.
Da un punto di vista manutentivo ci sono riuscito, questo è il beneficio di MVVM, e la potenza di WPF mi ha permesso di visualizzare le informazioni nel modo che mi è sembrato più chiaro.

Dal punto di vista di "comunicazione" dei concetti base è  un fallimento totale. Ci sono 14 file tra sorgenti e xaml, e se mai dovessi spiegare tutto il giro partirebbe mezza sessione.
Certo questo è uno di quei casi in cui MVVM può essere sacrificato. È solo un esempio che ha lo scopo di essere immediato da capire e non di essere una best practice. Sono sempre stato contrario a mostrare negli esempi di "tecnologia" la cura che andrebbe nel codice di produzione proprio perché sacrifica l'immediatezza della comunicazione.

Allora avrei dovuto forse buttare tutto negli event-handler a beneficio della leggibilità (cosa che non pagherebbe affatto in codice da produzione) ma avrei probabilmente sollevato il disappunto di coloro che sono familiari con WPF e MVVM.

Ecco dunque che torna la cara vecchia console a salvare la situazione. Penso che userò il client WPF per mostrare cosa si ottiene, e il client console per analizzare le parti salienti del codice di WCF4.
Per chi sta pensando a Winform, ritengo che sia una spada di Damocle. Con Winform è facile partire con poco codice e in un attimo il progetto si dilata a dismisura senza ottenere nemmeno lontanamente i risultati di WPF.

Certamente il mio caso è molto particolare, ma questo solleva ancora una volta l'annoso problema del mancato supporto nativo di WPF a MVVM. Se le classi di infrastruttura di MVVM fossero dentro gli assembly del framework, l'esempio sarebbe più snello e più condivisibile con chi non è ancora praticissimo di WPF.

posted @ martedì 11 maggio 2010 10.35 | Feedback (5) |

venerdì 7 maggio 2010

Lo spirito di community e la voglia di cavalcare l'onda delle nuove tecnologie

Chi mi conosce sa come la penso ma a volte vale la pena ripeterlo, magari adeguando il proprio pensiero a qualche anno di distanza. Questo post nasce dalla legittima domanda di "Uno qualunque" al mio post sui newsgroup.

La domanda, che va letta per intero, la riassumo in breve con un "chi ve lo fa fare?" parlando degli sforzi profusi a dare feedback ai prodotti come Visual Studio, tecnologie come il framework, C#, etc.

La risposta, per chi ha voglia di leggerla, può essere solo nella versione lunga. Sorry. Oh lettore, sei ancora in tempo a chiudere il browser se la prospettiva non ti alletta :)

Lo spirito di Community

La mia carriera informatica parte da amatore con uno ZX81, sul PC con il DOS 1.0 e passo dopo passo sono arrivato al Framework 4.0 senza essermi perso nulla di quello che sta in mezzo. Ho passato anni nella veste di developer geloso delle proprie scoperte, condivise solo con il carissimo amico Stefano (da solo sarei impazzito prima), con notti davanti prima a debugger Quaid Analyzer, poi con CodeView a risolvere enigmi in assembler. Dopo pochi anni il vuoto. Le tecnologie cambiano e la tanto preziosa scoperta finisce nel cestino. Io li chiamo scherzosamente gli anni del "buio" perché nel mio studio non facevo entrare la luce.

Questo si è ripetuto diverse volte finché ho cominciato a frequentare le community (newsgroup e UGIdotNET) e ribaltando totalmente il mio pensiero. Ho continuato a studiare le tecnologie come facevo prima ma invece di tenermi l'appunto per me, ho cominciato a condividere tutto con le altre persone.

Per mia personale deformazione, è difficile che faccia domande su una tecnologia senza prima averla sezionata in tutte le sue parti, motivo per cui il mio ruolo nelle comnunity è sempre stato quello di rispondere a ciò che ricordavo. Nonostante questo ho trovato un valore inestimabile anche nel rispondere perché mi ha dato modo di vedere a certi problemi con una prospettiva diversa. Questo mi è stato di grande aiuto anche sul lavoro.

L'onda delle nuove tecnologie.

Se guardando tecnologie come Java e .net non si ragiona in termini di evoluzione del software, spiacenti ma non sapete costa state usando. In molte aziende in cui tengo corsi alcune persone vedono l'arrivo del Framework.NET come una decisione presa dalle alte sfere e nulla di più. ("mi trovavo tanto bene con il mio C++/VB6/quellochevuoi").

Senza fare la storia delle tecnologie di sviluppo in versione "Bignami", bisogna domandarsi perché sono nate le tecnologie e i linguaggi che si sono succeduti negli anni.

L'avvento di C++ e OOP è stato un "paletto" fondamentale e oggi chi conosce OOP ha ben presente gli enormi vantaggi rispetto alla programmazione procedurale.

C++ ha gravi difetti "by design" come l'assenza di uno standard nel formato binario (non c'è mai nessuna garanzia che sorgenti compilati da versioni diverse di compilatore siano compatibili) e questo ha consolidato la posizione del linguaggio "C" che non è sostituibile.

Sempre in C++ non ci sono metadati che dicano se un buffer sia passato in ingresso, in uscita o in+out, tantomeno ho la dimensione del buffer (cosa che localmente ad un processo fa poca differenza ma tra processi/macchine diverse è fondamentale).

Per colmare queste lacune la commissione DCE ha creato il linguaggio IDL che, per farla breve, ha aggiunto i metadati a C/C++ raggiungendo la tanto desiderata compatibilità binaria con COM in casa Microsoft e Corba sui sistemi *nix. Le specifiche sono molto simili tra loro perché i problemi da cui si è partiti sono esattamente gli stessi.

Corba ha fallito perché mancava l'imperatore che imponesse uno standard a cui dovevano sottostare tutti. In casa Microsoft COM ha funzionato e ancora oggi è dentro Windows e dietro le quinte del Framework.NET.

Però COM era complessa, prona agli errori e mancava ancora di altri metadatati che sono stati inseriti nella "V2" di COM chiamata Framework.NET. Tecnologie come Reflection (attributi etc.), CodeDom, linguaggi dichiarativi, Linq, e tanti altri sono possibili solo grazie all'infrastruttura nata per colmare le lacune delle tecnologie precedenti.

Ok, la carrellata è molto superficiale e con tantissimi punti di discussione ma credo che di almeno l'idea di quello che chiamo "l'onda delle nuove tecnologie".

Quando le hai viste tutte, ti piace far parte di quello che sarà la prossima versione e che le tue idee possano influire in qualche modo sulle tecnologie che verranno. La mia filosofia è sullo stile "attimo fuggente" e nella mia vita spero di vederne quante più possibile. So benissimo che solo aziende "mostro" del calibro di Microsoft, IBM, Oracle, Google, etc. hanno la forza di introdurre una tecnologia nuova ma soprattutto di promuoverne l'adozione. Quindi non ho pretese nel mio piccolo di mettere su il progettino fantastico sulla carta ma che non avrebbe nessuna speranza di essere realizzato e diffuso. Non sono l'unico a pensarla così, pensiamo al signor Don Box che per realizzre i suoi sogni delle comunicazioni distribuite è andato in Microsoft a progettare WCF, lasciando la sua azienda.

E finalmente arrivo alla risposta di "Uno qualunque" che è articolata su più punti:

  • Mi piace far parte dell'onda, da sempre studio le nuove tecnologie per mio piacere personale, se queste hanno qualcosa di mio non ne posso essere che orgoglioso.
  • Essere parte delle community è fondamantale per cavalcare l'onda. Il brainstorming con altri developer e con i team di sviluppo è un fantastico trampolino per le proprie idee.
  • Le persone dei tanti team di sviluppo che ho conosciuto sono aperte alla discussione, il brainstorming con loro è sempre stato molto positivo anche per mia cultura personale. Nella mia vita ho imparato che il confronto con altre persone è sempre positivo anche se ciascuno resta su posizioni diverse.
  • Microsoft per le cose che ho fatto mi riconosce, previa valutazione anno dopo anno, l'award MVP di cui vado molto fiero e che è un modo per Microsoft di ringraziarci. Tra i benefit dell'award ci sono: abbonamento MSDN e Technet annuale, partecipazione a tantissimi meeting con i team di sviluppo (via internet), partecipazione ad eventi tra cui il più importante è il Summit MVP nel campus di Redmond, accesso a risorse quali i sorgenti di Windows (e altro ancora, ma ovviamente non denaro).
  • L'award MVP ci ha sempre lasciato la totale indipendenza nel parlare delle cose buone e non buone, a nostra discrezione e con cognizione di causa. Questo è uno dei valori più alti di questo premio che mi lascia la totale libertà di critica. Un esempio è quando ho trasmesso di persona a Soma (VP Dev Div) i miei apprezzamenti per il lavoro su VS2010 ma anche il mio disappunto per il problema sugli MSDN Forums.

In conclusione, "Uno Qualunque, se condividi le mie passioni puoi capirmi. Se invece sei tra quei dev che alle 17:00 guardano l'orologio con la testa già a casa allora non puoi capirmi. Intendiamoci io non disprezzo quelle persone, semplicemente non le capisco, ma lo dico da persona fortunata perché lavora con quello che gli piace fare.

Tutto questo risponde anche alle domande di chi mi chiede come diventare MVP. Non sono la persona più adatta a rispondere (il boss a cui chiedere ha casa qui) ma ritengo che i presupposti siano proprio la "fame" di tecnologie e la voglia di confrontarsi con gli altri. Queste sono cose però che si riescono a fare solo se piacciono, altrimenti è masochismo allo stato puro.

posted @ venerdì 7 maggio 2010 15.23 | Feedback (20) |

mercoledì 5 maggio 2010

Addio Microsoft newsgroup

Questa mattina Microsoft ha finalmente rilasciato una dichiarazione ufficiale circa il futuro dei newsgroup della gerarchia Microsoft e dei nuovi MSDN/Technet/Answer/... Forum. La decisione finale è che la piattaforma dei forum soppianterà totalmente quella dei newsgroup.

Personalmente ho sempre sostenuto che nntp fosse tutt'altro che obsoleto per funzionalità ma ogni azienda è libera di scegliere come crede il proprio futuro e quindi questa decisione di per se non è contestabile.

Perché ne parlo allora? Perché come MVP i newsgroup sono stati e continuano ad essere un canale importante della comunicazione con le communities. Da quando la gerarchia italiana è attiva ho cominciato a frequentare e a rispondere assiduamente alle domande e a fare "community brainstorming" sulle varie tematiche.

Esiste un problema? Si.

Almeno da parte mia non esiste un attaccamento ai newsgroup per motivi storici o affettivi, ma solo perché ad oggi i newsgroup offrono funzionalità che ancora i Forum non riescono ad erogare.
Sono diversi anni che i Forum sono attivi ma nonostante un feedback serrato di tutta gli MVP, soprattutto negli ultimi 3 anni, i problemi rimangono sempre gli stessi.

Questa è una breve lista dei problemi che ho riscontrato personalmente. Ho avuto segnalazioni di altri problemi che personalmente non ho avuto e che quindi ometto dalla lista.

  1. Il caricamento di un thread di discussione è immensamente lento se paragonato allo scaricamento dal server dello stesso thread via newsgroup. Cosa ovvia ma assolutamente fondamentale.
    Per dare un ordine di grandezza il tempo più alto che ho cronometrato ieri è stato di 40 secondi per caricare un thread da una linea 10Mbit di Fastweb. Il tempo più veloce è stato di 4 secondi. Il tempo di scaricamento di un thread dai newsgroup non ancora presente su macchina locale è di 1 secondo.
  2. La login con LiveId è lenta.
  3. Se si usano due o più LiveId il browser sceglie l'ultimo utilizzato, rendendo impossibile loggarsi nel modo corretto. Chi ha questo problema mi ha detto di usare un browser diverso per ciascun LiveId. La trovo una follia.
  4. Gli alert a volte non mandano l'alert. Questo problema è stato riscontrato da molti mvp.
  5. Gli alert mandano una notifica per ogni thread a cui si partecipa. Se partecipo a 30 thread, ricevo 30 email. Questo mi rende impossibile usare gli alert.
  6. Non è possibile lavorare in modalità disconnessa.
  7. Lavorando nel browser ancora oggi ricevo raffiche di "500 error" a seconda dei momenti della giornata.
  8. Esiste un tool pubblico chiamato "nntp bridge" che funge da nntp server sulla macchina client e parla con i servizi WCF dei forum. Sfortuntatamente dopo due anni di feedback i problemi sono irrisolti. Chi riesce a farlo funzionare dice che è molto lento (come il sottoscritto nelle versioni precedenti). Personalmente su tre macchine distinte ricevo un errore incomprensibile alla login e la festa è finita in partenza.
    Questo è il problema di creare una piattaforma che può essere accessa da tool non-standard. La documentazione dei servizi WCF (basati su protocolli standard) dei forum non è disponibile. Di conseguenza se il tool non funziona, non esiste soluzione possibile.

    Mi piace ricordare che qualche anno fa il forum UGIdotNET era replicato in modo bidirezionale sui newsgroup Microsoft. Il replicatore, creato da Markino, ha sempre funzionato come un cronometro rendendo possibile avere interfaccia web con login e newsgroup allo stesso tempo.

Questi problemi sono molto rilevanti per chi risponde o segue un alto numero di thread. Dalla prospettiva opposta, per chi fa domande, ovviamente molti di questi punti sono totalmente irrilevanti.

È un grosso dispiacere vedere come tutto il feedback dato al team dei Microsoft Forum in questi anni non sia servito assolutamente a nulla.
Allo stesso modo è paradossale vedere che nella stessa azienda la developer division abbia invece considerato moltissimo i feedback a cui gli MVP hanno partecipato e con orgoglio dico che il prodotto appena sfornato, Visual Studio 2010, è a mio parere la migliore versione di Visual Studio di tutti i tempi.

posted @ mercoledì 5 maggio 2010 9.46 | Feedback (5) |

lunedì 3 maggio 2010

I poster di Visual Studio 2010

Ho conosciuto la simpaticissima Lisa durante il Summit quando ci ha scorazzato in macchina tra Bellevue e Seattle insieme ad Alessandro.

Dal suo blog, riporto tal quale la lista dei poster di Visual Studio 2010, con relativo link al download in alta risoluzione:

Visual Basic

image

image

Visual C#

image

image

Visual F#

image

image

Visual C++

image

image

Non trovate VB un tantino invecchiato? Di C++ non si può dire nulla per galanteria eh ;-)

posted @ lunedì 3 maggio 2010 9.26 | Feedback (5) |

lunedì 26 aprile 2010

Raf alla Keynote del lancio di Visual Studio 2010 a Bucarest

Il lancio di Visual Studio 2010 è iniziato lo scorso 12 Aprile a Las Vegas e alcuni paesi come l'Italia hanno svolto in contemporanea il loro evento locale mentre in altri invece avviene nelle settimane successive.

In Romania il lancio avverrà il 19 Maggio a Bucarest dove avrò il piacere e l'onore di aprire l'evento con la Keynote. Se qualcuno passa da quelle parti, l'agenda e il sito di iscrizione è qui.

Voglio ringraziare tutti i ragazzi di Ronua, in particolare Adrian, e naturalmente Microsoft Romania per la loro gentilezza e la disponibilità. Bucarest è una bellissima città che conosco solo da fotografie, libri di storia e documentari. Spero di riuscire a fare un mini-tour per vedere almeno un po' delle bellezze di questa città.

La revedere! :)

posted @ lunedì 26 aprile 2010 9.05 | Feedback (1) |

giovedì 15 aprile 2010

Addin per l'indice e l'integrazione dell'Help in Visual Studio 2010

Lo avevo visto insieme ad Alessandro Del Sole a Redmond durante un meeting e questa sera è stato reso disponibile. Sto parlando di un addin per Visual Studio 2010 che integra l'ultima versione (v3) dell'help all'interno di Visual Studio e la lista delle keyword che non è disponibile nella visualizzazione all'interno del browser.

Step per installarlo.

  1. Aprire l'extension manager dal menu Tools
  2. In alto a destra (casella di ricerca) digitare "HelpViewerKeywordIndex" (senza virgolette)
    image
  3. Cliccare su Download, confermare l'installazione, quindi chiudere e riavviare Visual Studio 2010
  4. In alternativa visitare direttamente il sito degli addin e installarlo manualmente

Step per utilizzarlo.

  1. Dal menu Help selezionare la voce "Help Viewer Keyword Index". Si aprirà la nuova finestra dell'Help.
    image
  2. Trascinare la finestra nella posizione desiderata. Spostandosi sul Solution Explorer ed eseguendo il drop sopra il pulsante centrale, la finestra di help si sistemerà a fianco al Solution Explorer stesso
    image
  3. Nel tab "Options" selezionare "Use the embedded VS browser" se si desidera integrare l'help all'interno di Visual Studio 2010
    image

Fatto questo, dai tab Index e Search è disponibile l'help.

Io preferisco sempre installare tutti i topic di help in locale e usare la library locale al posto di quella online per ottenere le massime performance. Per cambiare la sorgente (online e/o offline) e installare i topic localmente, è sufficiente usare l'Help Manager che si ottiene selezionando la voce "Manage Help Settings" da Visual Studio (Ctl-Alt F1) (accessibile anche dal menu di Start).

posted @ giovedì 15 aprile 2010 23.01 | Feedback (3) |

venerdì 9 aprile 2010

Visual Studio solution + project switch 2008 to/from 2010

Già dalle prime beta avevo fatto qualche prova e, a meno di non usare caratteristiche particolari, me l'ero cavata con un paio di modifiche nei file sln e csproj che sono in formato xml.

Com'era già avvenuto per precedenti versioni di Visual Studio, Steve Dunn ha pensato di fare un bel regalo agli sviluppatori e ha realizzato un tool per cambiare rapidamente il formato delle solution e dei progetti. Sfortunatamente i progetti C++ sono stati lasciati fuori dalla conversione ma con il fatto che VC++ adesso può usare anche il toolset di VS2008 (o altri custom), questo è un problema minore.

Il tool inoltre permette anche di convertire il target Framework tra le versioni 3.5 e 4.0.

Dulcis in fundo, per chi volesse customizzare il tutto, Steve ha anche reso disponibili i sorgenti.

posted @ venerdì 9 aprile 2010 10.13 | Feedback (0) |

martedì 6 aprile 2010

SSL ancora sotto il mirino

Stavo leggendo la settimana scorsa un interessante articolo che riprende alcune considerazioni di Wired magazine e solleva degli interrogativi sull'effettiva sicurezza offerta da SSL.

Voglio ricordare che un certificato SSL fornisce due garanzie fondamentali. La prima, che è la più importante, è di garantire che l'indirizzo del sito web sia effettivamente quello del certificato digitale. In sostanza garantisce l'identità del sito web, cioè che stiamo parlando con il sito giusto.
La seconda è di crittografare il canale, permettendoci così di scambiare dati preziosi tra le due parti.

Come può il certificato dare tante garanzie? La teoria crittografica ci dice che due soggetti che non si sono mai conosciute non potranno stabilire una connessione crittografata a meno di non essersi preventivamente scambiati una chiave. Nel caso di SSL la chiave in comune è fornita nei certificati delle CA (Certificate Authorities) preinstallate dal browser.

Da sempre ripeto che le CA sono un potenziale punto debole (link1, link2, link3). Durante TechDays/WPC ho avuto modo di mostrare alcuni modi per attaccare SSL: SSLStrip per fare un "downgrade" dell'handshake iniziale di SSL (come citato dall'articolo iniziale), DNS Poisoning per dirottare l'utente su un sito con un certificato emesso da una CA compiacente, etc.

Nell'articolo si prende in considerazione un'ipotesi hollywoodiana ma al tempo stesso non così fuori dalla realtà. Una società in Arizona ha realizzato un device hardware per intercettare comunicazioni SSL. Il device, che funziona solo se viene installato un certificato che deve essere fornito dalla Certificate Authority compiacente, permette di eseguire attacchi di tipo man-in-the-middle e quindi spiare un utente come se fosse una comunicazione http.

L'articolo, partendo dal fatto che un device di quel genere è totalmente inutile senza un certificato ad-hoc, ipotizza che il governo (USA) potrebbe richiedere tale certificato al pari di una ingiunzione per eseguire un'intercettazione telefonica.

Il giorno che questa ipotesi dovesse rivelarsi veritiera, sarebbe festa grande per gli avvocati. Non aggiungo altro se non che chi ha veramente qualcosa da nascondere ha tanti altri mezzi per fare fessi tutti quanti.

Per il momento SSL rimane il mezzo migliore purché venga implementata correttamente e l'utente sappia come si usa, presupposti tutt'altro che ovvi, visto che esistono dozzine di casi di idiozia tecnologica galoppante.

posted @ martedì 6 aprile 2010 15.51 | Feedback (2) |

martedì 16 marzo 2010

Windows Phone, Silverlight e Compact Framework e Mix 2010

Sembra una ricetta di cucina dagli ingrendienti improbabili e invece è il risultato del terremoto accaduto a Redmond nel team dei device.

Ricordo tempo fa di avere letto una frase di Bill Gates che indicava la mancata innovazione come il nemico numero uno di qualsiasi azienda. Nonostante Microsoft sia l'azienda del settore informatico che investa di più nella ricerca, a volte manca la capacità di innovare. L'insuccesso del mondo dei mobile è dedicato a tutti coloro che lamentano l'eccesso di velocità di questo settore. Spiacente, restare fermi è un insuccesso garantito.

Così ecco un colpo di reni e presentare la nuova generazione di smartphone al Mix 2010 di Las Vegas dove ancora stasera la diretta dovrebbe regalarci altre novità.
Sono un techy, se preferite un geek, e perciò lascio ad altri il piacere di decantare le piacevolezze grafiche del nuovo sistema operativo mobile. Dal punto di vista estetico è piacevole, ma non sono neppure in grado di fare paragoni con la concorrenza di Apple e Google. Perciò complimenti per gli effetti speciali anche se secondo me se ne è parlato troppo senza lasciare spazio alle "feature" più phone-oriented.
Come ho scritto su Twitter durante la diretta, la connessione 3G della mia zona (pienamente coperta) offre 0.35 MB/s con picchi di 0.8MB/s. Perciò spiacente ma le sfavillanti demo di streaming in HD che ho visto nella keynote rimarranno in Italia solo una demo e basta.

L'argomento principe che è mancato è la gestione della telefonata e comunicazione (Windows Phone è un telefono, vero?). Nel mio prossimo telefono vorrei avere:

  • gestire la telefonata via SIP in modo trasparente e integrato non con una applicazione alternativa.
  • eseguire il best routing delle telefonate in uscita (su più SIM se disponibili, via SIP, via Gateway se in roaming, ...)
    • Per Gateway intendo gateway sip raggiungibili via telefono come VoipStunt che evitano costosissimi roaming all'estero
  • ricerca dei contatti sulla base della locazione geografica
  • possibilità di disabilitare il roaming dati (non solo nel push-email)
  • gestione del piano tariffario (dati, sms e voce) indicando i massimali vs quote attuali

Ok, lascio da parte i miei sogni e torno alla realtà.

Lo sviluppo per WP7 è il meglio di quanto gli sviluppatori potessero chiedere. Potranno creare due tipi di applicazioni: Silverlight e XNA. A quanto si è visto non c'è cambio di modello di programmazione o limiti degni di nota ed anche i tool sono gli stessi che si usano per il fratellone Windows. Nelle demo si è vista la versione Express di Visual Studio 2010 RC, Expression Blend for Windows Phone e i relativi tool di sviluppo. Infine è in arrivo anche un libro del grande Charles Petzold di cui è disponibile una preview. Sui tool sono realmente entusiasta perché già oggi VS2010 è a dire poco fantastico. Su WP7, tanto per fare un esempio, l'emulatore può sfruttare il multitouch di Windows 7 per simulare il touch del device, ottimo lavoro.

Nonostante questo al Mix 2010 non si è ancora parlato di device non-phone, cioè i vecchi Windows Mobile 6.x basati su Compact Framework. Dai Microsoft bloggers scopro che il Compact Framework è anche su Windows Phone: http://blogs.msdn.com/abhinaba/archive/2010/03/13/windows-phone-7-series-programming-model.aspx .

Il Compact Framework indubbiamente cambierà, anche a giudicare dalla rivoluzione nel team:

Compact Framework team 2006

Compact Framework team 2010

CFTeam_Prima CFTeam_Dopo

La versione è diventata la 3.7 e aggiunge naturalmente nuove API e hosting per soddisfare le necessità di Silverlight. Se questa versione (più Silverlight) sarà resa disponibile su Windows Mobile 6.x è ancora tutto da scoprire.

Una cosa mi sembra certa, il fatto che lo sviluppo per Windows Mobile sia stato eliminato da Visual Studio 2010 (bisogna quindi usare Visual Studio 2008) lascia intendere che quei device e quel kit di sviluppo è defunto. È probabile che ci voglia ancora parecchio tempo per creare il sistema operativo gemello per device industriali e ancora più tempo per i produttori per l'integrazione. Spero di essere smentito stasera alla seconda keynote.

posted @ martedì 16 marzo 2010 10.07 | Feedback (15) |

sabato 27 febbraio 2010

MVP Summit - le conclusioni

Dal mio punto di vista probabilmente il miglior Summit da quando viaggio in quel di Seattle / Redmond. Il nostro gruppo Developer Security ha visto (thank you Mark!) due giorni di intense discussioni su vari topic che girano intorno alla Security. A causa del nostro NDA non posso essere più specifico ma è stato estremamente produttivo anche perché essendo un gruppo molto piccolo (eravamo circa 5 MVP sui 21 al mondo) abbiamo avuto modo di discutere a fondo i topic.

Io e Alessandro Del Sole abbiamo viaggiato insieme per più di 30 ore a causa di un problema non meglio specificato all’aeroporto di Genova. Il risultato è stato un zig-zag veramente stanchevole: Genova-Roma-Parigi-Atlanta-Seattle. Siamo così arrivati il Giovedi a notte fonda.
Venerdi e il successivo Lunedi sono stati caratterizzati per me da una sequenza di meeting  nel campus al di fuori del contesto del Summit.

Nel weekend abbiamo approfittato per affittare una macchina e, oltre al tradizionale shopping con tappa fissa da Fry’s, domenica Roberto si è unito a noi e abbiamo fatto una magnifica gita. Prima tappa ad Olympia, capitale dello stato di Washington, città molto piccola ma estremamente gradevole. Ci sono alcuni palazzi del governo e una bella baia.

Poi siamo tornati verso Tacoma passando per il famoso ponte di Tacoma narrow bridge, noto per il suo crollo nel 1940 dove gli ingegneri civili hanno per la prima volta capito il fenomeno della risonanza sui ponti.

Siamo risaliti sulla penisola con panorami decisamente bellissimi per poi entrare da nord nella famosa isola di BainBridge che si affaccia davanti a Seattle downtown. Qui abbiamo preso il ferry boat che ci ha portato al porto dei Seattle con una magnifica vista (anche se con un tempaccio da lupi) della skyline di Seattle. Gita da ripetere senza pensarci due volte, un po’ come quella di qualche anno fa ad Orcas.

 

IMG_2716  IMG_2708   IMG_2727

IMG_2771  IMG_2801   IMG_2803  

Martedi comincia il Summit. Quest’anno le sessioni plenarie si sono svolte a Bellevue, una città molto piacevole e piccola, sebbene abbia un centro con grattacieli da fare invidia alle nostre metropoli.

Poi Mercoledi e Giovedi intensissimi al campus. Nella serata di Mercoledi una cena alla caffetteria del campus.

Nella foto al centro compare il “folto” gruppo di MVP Developer Security (solo 4) insieme a diversi personaggi del mondo security tra cui Andrew Dai del CLR (thanks Andrew, great talk!), e l’ormai celeberrimo Vittorio Bertocci, ormai naturalizzato Redmondiano.

A destra invece gli MVP di Moonlight :) ok ok, di Silverlight! Just joking.

IMG_2832   IMG_2867  IMG_2870

Nella caffetteria anche gli MVP di Asp.net e di IIS. A sinistra Alessandro, Simone ed Ugo. In centro Barry (ex Devsec MVP, appena trasferito in quel di Redmond), il sottoscritto e Mark (a cui vanno i ringraziamenti per le fantastiche giornate al campus). Infine a destra non c’è bisogno di dire che è sempre un onore incontrare Scottgu.

IMG_2871   IMG_2872  IMG_2874

Giovedi sera la sorpresa, già raccontata nel post precedente, della cena con Soma Somasegar e poi la festa al “The Garage” di Seattle, un bel locale in cui reincontro il frizzante Stephen Rose del programma STEP di Windows di cui faccio parte.

IMG_2875   IMG_2876 

Infine Venerdi le closing session in Bellevue, dove appaiono a (mia) sorpresa Andrea, Davide e Ugo.

IMG_2899  IMG_2900  IMG_2894

La sera si cena da Daniel’s in cima ad uno dei grattacieli di Bellevue e poi il giorno dopo il rientro, questa volta fortunatamente senza extra-tappe.

IMG_2903  IMG_2933  IMG_2927

Personalmente sono entusiasta delle novità in Visual Studio 2010 che ormai tutti hanno già potuto almeno assaggiare. Altre cose molto interessanti arriveranno e personalmente spero che le varie incubazioni che si discutono durante il Summit vedano la luce nelle prossime release dei prodotti/tecnologie perché sono decisamente promettenti.

See you soon!

posted @ sabato 27 febbraio 2010 20.49 | Feedback (0) |

venerdì 19 febbraio 2010

Dinner with Soma

Ieri sera ho avuto l’onore di essere parte di un ristretto gruppo di MVP invitati ad una cena informale con Soma Somasegar, Senior Vice President della Developer Division di Microsoft Corporation.

IMG_2875

Devo dire che il clima è stato realmente molto informale e piacevole. Hanno partecipato alla cena diversi personaggi di spicco del mondo dello sviluppo come Don Box, Scott Hanselman, Nikhil Kothari, Brian Harry, Shawn Wildermuth, oltre naturalmente a diverse persone di rilievo di Visual Studio e del programma MVP.

Dopo la cena la cosa è stata ancora più interessante perché sono rimasto da solo al tavolo con Soma che mi ha fatto molte domande per capire la mia prospettiva di sviluppatore su come si sta muovendo Microsoft. Da una parte ci ho tenuto a fargli i complimenti per lo splendido lavoro che la Developer Division sta facendo con Visual Studio, dall’altra non ho potuto che sottolineare quanto l’architettura dei forum abbia letteralmente fallito la sua missione per lentezza e inadeguatezza.

Non ho finito di parlare dei forum che ha fatto intervenire Scott Hanselman nella discussione con a cui ho espresso un riassunto dei miei tre anni di lamentele rispetto a quella piattaforma.

Con questo spero e credo di aver rappresentato le community del mio paese. Vedo, leggo e sento tantissimi sviluppatori contenti di Visual Studio e quando ci sono le buone cose vanno dette con la stessa enfasi di quelle meno buone come appunto la faccenda che gira intorno ai forum.

posted @ venerdì 19 febbraio 2010 20.20 | Feedback (3) |

Powered by: