in

DotNetMarche

.NET Framework User Group delle Marche

This Blog

Syndication

ExternalBlogs

February 2007 - Posts

  • Windows Vista per sviluppatori software @ Marcamp + eBook

    Finalmente ho un attimo di tempo per postare qualche riflessione ed info sul Marcamp e sulla mia sessione su Windows Vista, dopo quello che hanno già detto Diego e Alk.

    La formula del Barcamp mi è piaciuta, è un evento organizzato con modi e finalità completamente differenti dai classici workshop, ma ne ho ricavato sia la possibilità di rincontrare diverse persone che difficilmente vedrei ai classici meeting (vecchi amici e nuove conoscenze), sia delle panoramiche su diversi argomenti interessanti, magari piuttosto disconnessi tra loro ma non per questo meno affascinanti (di temi ce n'erano davvero per tutti i gusti!).

    Un altro aspetto interessante del Barcamp è il ritmo "frenetico" delle sessioni, brevi ma intense (si avevano degli slot da 40 minuti, ridotti poi in diversi casi a 20 nel pomeriggio, causa scarsità delle sale rispetto agli speaker), con perentori cartelli che invitavano a lasciare la sala al prossimo speaker (magari li potremmo prendere in prestito per DotNetMarche :P!).

    Unica pecca che ci ho visto, purtroppo quando si arriva e si sceglie l'orario in cui fare la propria sessione magari la scaletta non è ancora ben definita, per cui ci si può ritrovare in concorrenza con altre sessioni che potrebbero interessare (purtroppo io mi sono trovato in concorrenza con la sessione 'Vino 3.0', che proprio prima di pranzo oltre a mostrare il vino digitale, offriva degustazioni di quello vero....aivoglia a mostrare tutte le cose belle di Vista, non c'era cmq confronto!).

     

    Riguardo alla mia sessione, su come utilizzare appunto Windows Vista da sviluppatore software, ho provato a concentrare nel tempo a disposizione sia una panoramica delle novità (alla faccia di chi dice che non ce ne sono rispetto a XP), sia un resoconto dell'esperienza data dall'utilizzo quotidiano (e al solito piuttosto intenso, come capita un po' a tutti gli sviluppatori :( ) di Vista per un periodo di un mese.

    Se dovessi sintetizzare in due parole la mia esperienza, Vista è decisamente un passo in avanti, grazie a molte caratteristiche integrate che ne rendono più sicuro e piacevole l'utilizzo (e anche le performance, perlomeno nei pc nuovi, sono decisamente migliori che non con XP), per cui non tornerei mai indietro, ma è anche vero che Microsoft, diversamente dagli altri passaggi generazionali di sistemi operativi, in cui aveva cercato di mantenere la compatibilità dei software, questa volta ha dato un taglio al passato, per affrontare le nuove priorità (la sicurezza in primis).

    E' vero che Vista mette a disposizione varie tecnologie per creare uno strato di compatibilità (es. con la Data Redirection, o l'istituzione di una certificazione apposita, 'Works with Windows Vista'), ma spesso non sono sufficienti a far girare diversi programmi non più supportati (e a volte anche quelli supportati), per cui si potrebbero incontrare diverse difficoltà in fase di migrazione (io attualmente sono costretto ad utilizzare il vecchio portatile con XP, per far girare programmi come eVC++ e per sincronizzare palmari che, seppur recenti e dotati di Windows CE 5, non hanno ancora driver aggiornati a Vista).

    Diciamo che questi fattori, uniti ad altri (es. il supporto per certe tecnologie come il fx3 e altri prodotti solamente da XP SP2 in poi) mi hanno spinto a paragonare la situazione attuale un po' al passaggio da Win 3.1 al 95, in quanto occorrerà effettuare una grossa revisione dei software attuali, e da adesso e per i prossimi anni si avranno a disposizione tecnologie avanzate ed intrigranti (come appunto il fx3), il cui utilizzo attualmente può essere frenato dal non supporto a piattaforme e macchine non adeguate (es. con Windows 2000), che bene o male verranno tagliate fuori dalla normale evoluzione tecnologica e di mercato...bisognerà solamente vedere in quanto tempo.

    Nelle slide ho provato a raccogliere un po' di materiale e link, sia riguardo all'utilizzo di Vista come "utenti" (nel senso di persone che utilizzano dei programmi, anche se si tratta di strumenti di sviluppo), sia nell'ottica di sviluppatori che dovranno realizzare applicazioni compatibili per Vista.

    C'è anche la registrazione in mp3 della sessione, sono circa 35 minuti, trovate il tutto qui (ci sono anche le slide ed il codice di Diego e Alk). 

    In alternativa, qui ci sono le slide visibili da web (senza usare powerpoint), insieme alle altre del Marcamp.

     

    PS:

    grazie al MarCamp, ho avuto modo anche di incontrare il noto Antonio Tombolini. Per chi fosse interessato, sta cercando di realizzare una libreria on-line di e-book, la http://www.simplicissimusbookfarm.com/ .
    Inoltre, sta facendo degli accordi per rivendere in Italia degli e-book reader (i dispositivi hardware dotati di schermi e-inki), come l'iLiad che qualcuno già conosce, e già nei prossimi giorni potrebbe essere in vendita dal sito della loro libreria.
    Qui un'intervista di Antonio al RomeCamp sull'iLiad.

  • Di ritorno dal MarCamp...

    Sabato scorso c'è stato il già pubblicizzato MarCamp ad Ancona... manifestazione interessante, anche se per certi diversi diversa da come mi aspettavo e da come auspicavo.

    Noi di DotNetMarche siamo scesi in forze, pronti a seminare un pò di semini .NET tra postazioni linux, PHP e iBook, e direi che non è andata male, a parte l'istantanea che riprende me (con una posa da fesso incredibile) e Gian Maria...

    Probabilmente delle tre presentazioni che abbiamo tenuto, quella di Stefano, incentrata sull'esperienza d'uso di Windows Vista, è stata la più centrata visto il target di pubblico della manifestazione abbastanza generalista.

    Per Gian Maria è la sua introduzione alla generazione dinamica di codice con .NET 2.0, prima uscita pubblica per il progetto AbstractView (di prossima pubblicazione, o almeno speriamo...), la vita è stata un pò più dura... di certo molti dei presenti al primo accenno di MSIL si saranno chiesti "ma di cosa parla questo?" e quando Gian Maria si è messo a "provocare" gli ascoltatori emettendo suoni inconsulti come "LDSTR", "STRPOP", ecc... ho visto più di una faccia perplessa, ma al solito con la sua proverbiale fluidità di linguaggio e preparazione tecnica se l'è cavata più che bene, con alcuni dei presenti che lo hanno poi fermato per ulteriori spiegazioni, segno che comunque l'interesse lo ha suscitato.

    Per me e il mio MonoRail la vita è stata un pò più dura, primo perchè effettivamente ho riciclato in toto la presentazione già preparata per il primo workshop DotNetMarche, secondo perchè mostrare in 40 minuti un progetto così ampio partendo dalle basi e facendo vedere tutto quanto era una impresa improba... beh, io ci ho provato comunque, e il risultato è stato che troppe cose le ho dovute saltare, un pò di cunfusione l'ho fatta (addirittura un paio di volte mi sono impuntato con le parole tanta era la fretta) e dubito di aver trasmesso ai presenti l'interesse per una metodologia di sviluppo comunque interessante e innovativa...

    Purtroppo, causa partita serale di pallavolo, ho dovuto pure saltare la cena... peccato :(

    P.S: per la cronaca, abbiamo vinto 3 a 1!

    powered by IMHO 1.3

  • [OT] Hanno fatto pure il logo...di protesta :S

    Sembra che tutta l'Italia si stia muovendo contro il "suo" sito.

    Leggendo questo interessante commento su P.I., da una persona che dice di aver collaborato al progetto, ho visto che qualcuno ha tirato su anche un blog di protesta con tanto di logo.

    Vedremo un po' come va a finire

  • MarCamp, ovvero il primo BarCamp nelle Marche

    Anche se ormai mancano pochi giorni, segnalo che Sabato 24 Febbraio si terrà il primo BarCamp nelle Marche (dalle parti di Ancona), con cena pre e post evento.

    Cos'è un BarCamp?

    Per BarCamp s'intende un tipo di incontro caratterizzato dalla mancanza di una scaletta prefissata di relatori e in cui non esiste un pubblico passivo.
    I partecipanti all'evento sono invitati a partecipare in maniera attiva alle varie discussioni, per condividere pensieri ed idee.
    L'obiettivo è quello di riunire persone e mettere in comune la conoscenza, sia essa una tecnologia oppure un’idea.

    La Prima Regola del BarCamp: "Nessun Spettatore, solo Partecipanti"

    Tutti i partecipanti devono mostrare una demo, preparare una presentazione/discussione, una sessione o aiutare in una. Altrimenti possono offrirsi come volontari e contribuire in qualche modo al supporto dell'evento.
    Tutte le presentazioni devono avvenire il giorno del barcamp. Preparala in anticipo ma soprattutto arriva presto al mattino in modo da prendere uno spazio sul muro con il post-it col titolo della presentazione.
    Le persone presenti all'evento sceglieranno quali demo o presentazioni vogliono ascoltare.

    Qui info ed iscrizioni.

  • Windows Mobile 6 SDK temporaneamente rimossi: rilascio al 1°marzo

    Sembra che gli SDK rilasciati alcuni giorni fa non dovevano essere in realtà pubblicati, qualcuno aveva premuto un pulsante per sbaglio.
    Sono stati quindi rimossi, e l'effettiva data di pubblicazione finale è l'1 marzo: chi non li aveva scaricati, dovrà perciò attendere quel giorno (o rimediarli con qualche altro metodo).
    Rispetto, invece, a chi già li aveva scaricati, gli SDK finali potrebbero contenere delle correzioni o documentazione ed esempi migliori, per cui credo valga la pena scaricarli nuovamente.

    Fonte: Where are the Windows Mobile 6 SDKs?

  • Windows Mobile 6: oops they did it again!

    Questi giorni sono stati pubblicati diversi post sull'imminente uscita di Windows Mobile 6.
    Da ieri sono anche disponibili i relativi SDK, che mi hanno risolto un grande problema con gli emulatori sotto Vista (ora riesco a farli connettere al Device Center, il nuovo ActiveSync per Vista)!

    Al di là delle novità tecniche, che al momento non ritengo molto importanti per il tipo di applicazioni che sviluppo, quello che mi ha più colpito è il nuovo cambio di nome delle varie piattaforme: la versione Pocket PC sarà rinominata in "Classic", la Smartphone in "Standard" e la Pocket PC Phone Edition in "Professional".

    Quello che mi chiedo è se fosse proprio necessario fare questo nuovo cambiamento: nella versione precedente, si era fatto un passo in avanti, allineando le versioni tra Windows CE e Windows Mobile, portati entrambi alla release 5 (invece di 4.2 vs 2003).

    Ora, con questo cambio di nome, di cui ancora non ho colto l'utilità, non vedo come possa diminuire la confusione da parte di tutti gli utenti (utente finale, commerciali, nonché developer), come se non bastasse già quella che c'era nello spiegare alla gente che sviluppare per una delle 3 piattaforme è ben diverso che farlo nelle altre, nonchè l'incompatibilità tra tutte le versioni e gli strumenti di sviluppo (vedi a riguardo, ad esempio, questo post e quest'altro).

    Perchè, invece di fare tutti questi cambiamenti (che in questo caso fortunatamente sono stati solo nel nome), non pensano di più alla compatibilità e a facilitare la vita dello sviluppatore, invece di renderla più complicata?
    Ad esempio, il CF 2.0 ha permesso di sviluppare applicazioni per Windows CE 4.2, ancora diffusissimo, solo dal SP 1, mentre sviluppando in ambiente nativo (c++) da Visual Studio 2005, si ha il supporto solo per CE >= 5 (e tra l'altro in Vista non è più supportato eVC++, che nel mio pc non gira più, per cui si deve ricorrere ad una macchina reale o virtuale con XP).

    In PalmOS, un'applicazione sviluppata in c++ gira tranquillamente dalla versione del sistema 3.5, uscito ormai da molti anni, a quelle attuali (5.x), ed hanno affrontato anche il passaggio di architettura dalle CPU Motorola 68K alle ARM in modo del tutto trasparente per lo sviluppatore (funziona lo stesso file compilato, non è necessario neanche ricompilarlo!)...è chiedere troppo avere un po' più di rispetto per lo sviluppatore anche in ambiente Windows Mobile, che magari vuole utilizzare gli strumenti più nuovi come il c++ in Visual Studio 2005, ma non può farlo senza problemi perchè non sono supportate piattaforme ancora sul mercato?

    Una situazione analoga c'è sulla gestione di dispositivi che non vedo perchè non sono resi standard.
    In particolare, mi riferisco alla gestione dei lettori di barcode nei dispositivi che ne sono dotati: perchè non vengono realizzate delle API standard per pilotarli, ed invece ogni volta occorre legarsi all'SDK del particolare produttore (quindi occorre sia perdere tempo a vedere le particolari API proprietarie, sia creare nel codice delle referenze ad altre librerie, che al solito non agevolano l'utilizzo del programma su dispositivi di diversi produttori).
    Alla fine tutti i lettori di barcode necessitano di quelle poche funzioni di base per essere pilotati (abilitazione / disabilitazione / evento di lettura e settaggio di qualche parametro, come il bip ed i formati che si vogliono supportare)...sarebbe tanto complicato avere da parte del sistema operativo un'API standard per gestirli?

  • Windows Vista: attenzione alla Data Redirection

    Windows Vista utilizza un compromesso per aumentare la sicurezza del sistema e mantenere al contempo una certa compatibilità con quei programmi che qualcuno definirebbe 'maleducati', che hanno il 'vizio' di andare a scrivere dati in zone delicate come la cartella Program Files.
    Come ormai è ben noto, Vista di default avvia i programmi senza pieni diritti da administrator, per cui questi non hanno il permesso di andare a scrivere in queste aree sensibili.

    Questa tecnica si chiama Data Redirection (aka Data Virtualization), Igor ne aveva già parlato tempo fa, anche se per un aspetto un po' diverso (non so se in realtà quella cui lui si riferiva fosse proprio la Data Redirection).

    In breve, la Data Redirection consiste nel dirottare le operazioni di scrittura effettuate dai programmi in aree 'delicate', come le directory c:\windows o c:\program files, o in chiavi del registry, verso altre zone legate all'utente.
    Ad esempio, se un programma residente in una sotto-directory di c:\program files\ prova a scrivere un file di log nella stessa directory in cui risiede l'exe (o in una sotto-directory), il file verrà in realtà scritto in una directory 'gemella' residente in C:\Users\nomeutente\AppData\Local\VirtualStore\Program Files, quindi all'interno dell'area dedicata ai dati dell'utente.
    Questa feature è trasparente per l'applicazione, che crederà di andare a scrivere e leggere direttamente in c:\program files.

    C'è, però, una particolarità in questa tecnica, che imho può creare un po' di confusione all'utente, se esegue particolari operazioni (come è capitato a me).

    I programmi, al momento della compilazione, possono essere contrassegnati con un run level indicante che la Data Redirection non deve essere supportata. Tutti i programmi che vogliono essere certificati compatibili con Windows Vista (e quindi anche i programmi già inclusi nel sistema operativo, come il notepad), devono avere questo flag, ed essere quindi progettati ed eseguibili secondo i prinicipi del 'least privilege', senza ricorrere alla Data Redirection (cioè devono andare a scrivere i dati direttamente nelle aree dedicate, come quella del profilo utente, e non in c:\program files).

    La 'confusione' può nascere se con un programma che usa la Data Redirection si va a modificare un file in c:\program files\, e quindi in realtà la modifica verrà salvata in un file in c:\users\, e poi lo si va a riaprire da c:\program files con un programma come il notepad, compilato in modo tale da non usare la Data Redirection: il file che verrà visualizzato dal notepad sarà quello originale realmente presente in c:\program files, e non quello modificato.

    Nel mio caso specifico, avevo modificato dei file in c:\program files con WinMerge, effettuando il merge con altri file: riaprendo quei file modificati da tool come WinMerge o Windows Grep, che usano la Data Redirection, vedevo correttamente le modifiche, mentre se lo aprivo con il notepad o con il visual studio vedevo il file originale.
    Per apportare effettivamente in c:\program files quelle modifiche, in modo da vederle anche da applicazione come notepad, era sufficiente utilizzare il tool, nel caso specificio WinMerge, eseguendolo con diritti da admin...per il momento li ho semplicemente spostati da c:\users a c:\program files (previo consenso alla UAC!).

    Per chi è interessato ad approfondire l'argomento, e altre security features di Vista, ecco un riferimento.

    PS: grazie a colui che sul newsgroup mi ha aiutato a capire cosa accadesse realmente...peccato non sappia il nome!

  • Cambio lavoro

    Dallo scorso giovedì, dopo quattro anni, non sono più al lavoro nella mia vecchia società, ma ho intrapreso una nuova avventura.
    Volevo cogliere l'occasione per ringraziare tutti i miei colleghi, che oltre ad avermi sopportato per tutto questo tempo (e non era facile!) si sono dimostrati amici più che colleghi.
    Vi auguro buona fortuna e mi raccomando ci si vede tutti alla prossima cena!

Powered by Community Server (Commercial Edition), by Telligent Systems