domenica 21 marzo 2010

Concorso Embedded ed esami di certificazione Microsoft

Alcune settimane fa avevo annunciato che avrei scritto alcuni post a proposito del lavoro per il concorso Microsoft Embedded Sparks 2010. Purtroppo, a causa del poco tempo libero nell’ultimo periodo e per alcune problematiche hardware/software nella preparazione del prototipo, ho dovuto interrompere lo sviluppo. Sarà magari per il prossimo anno…

Nel frattempo, ho anche studiato per dare due esami di certificazione Microsoft. Ho dato il primo a metà dicembre: era la versione beta dell’esame Windows Mobile 6.5 - Application Developer. Ho ricevuto comunicazione del fatto di averlo passato appena dieci giorni fa. E lo scorso mercoledì ho dato e passato l’esame Windows Embedded CE 6.0 - Development. Adesso sono un Microsoft Certified Technology Specialist nel campo embedded… ma questo è solo l’inizio: ho già iniziato a studiare per un nuovo esame embedded, Windows Embedded Standard 7 for Developers (precedentemente noto come Windows Embedded Standard 2011), che darò appena sarà disponibile (probabilmente per metà giugno).

domenica 14 febbraio 2010

Ambiente di sviluppo virtualizzato in singola workstation

A lavoro e a casa ho a disposizione solo una macchina di lavoro e in genere ho la necessità di utilizzare versioni differenti degli ambienti e degli strumenti di sviluppo. Per esempio, per generare immagini di Windows CE 6.0, uno ha bisogno di Visual Studio 2005, Windows CE 6.0 Platform Builder, i vari service pack, gli aggiornamenti di compatibilità con Windows Vista/Windows 7 (se non viene più usato Windows XP), aggiornamenti mensili di Windows CE. Se uno ha a disposizione una macchina pulita, con solo i software elencati precedentemente, non ci dovrebbero essere problemi. Tutto dovrebbe funzionare bene, il debug remoto sui dispositivi funziona, la generazione delle immagini si dovrebbe completare con successo (a parte i normali errori di generazione e configurazioni errate, ma che in alcun modo dipendono dalla configurazione del sistema e dai software installati).

Ma cosa succede se si avesse la necessità di sviluppare anche applicazioni .NET Compact Framework 3.5 per Windows Phones? Sulla macchina di sviluppo bisogna installare Visual Studio 2008 e i vari SDK e strumenti per Windows Mobile. Naturalmente si vorrebbe anche che tutto il software precedentemente installato continuasse a funzionare come prima: questo è il problema. Raggiungere questo obiettivo non è una cosa facile. Visual Studio 2008 aggiorna infatti alcuni componenti di sistema che vengono usati da Visual Studio 2005 e da Platform Builder per lo sviluppo con Windows CE, e questo potrebbe causare alcune problematiche nel debug remoto di dispositivi Windows Mobile/Windows CE. Non che non sia possibile far convivere i due ambienti, ma bisogna prestare particolarmente attenzione all’ordine di installazione dei vari applicativi, degli aggiornamenti, degli strumenti. A lungo andare, qualcosa andrà storto e, per esempio, non sarà magari più possibile generare immagini Windows CE oppure effettuare debug remoto di un dispositivo.

Se poi avete anche bisogno di usare database SQL Server, di cui alcuni in versione 2005 e altri 2008, l’unica cosa da fare è installare entrambi sulla propria macchina. So che il problema non esisterebbe se i database 2005 potessero essere aggiornati alla versione 2008 (ma alcuni clienti non permettono di fare questa cosa) oppure se avessi altre macchine/server di sviluppo su cui installarli separatamente. Cercando sul web, nei forum, sui blog, molte persone dicono che le due versioni possono convivere tranquillamente, senza problemi. Io ho provato a installarli entrambi e per le necessità che ho per lavoro (Management Studio, Query Analyzer, backup database, accesso remoto ai database) le cose funzionano. Tuttavia molte persone in rete segnalano problemi con Management Studio, Integration Services e Analysis Services, ma di questo non posso dire molto, non avendo esperienza in merito.

Stufo di questi (e molti altri) problemi di compatibilità nel lavoro quotidiano, durante le vacanze natalizie ho iniziato a sperimentare un ambiente di sviluppo virtualizzato sulla mia workstation di casa. Dopo un mese di uso quotidiano, ho quindi deciso di adottare la stessa configurazione di sviluppo a lavoro.

In alcuni prossimi post vi darò una panoramica dei miei esperimenti di virtualizzazione, con i problemi che ho avuto e le soluzioni che ho trovato.

Per chi non conoscesse la virtualizzazione, segue una breve introduzione. Per maggiori informazioni, iniziate dando un’occhiata alle voci disponibili su Wikipedia (http://it.wikipedia.org/wiki/Virtualizzazione e http://en.wikipedia.org/wiki/virtualization).

 

Cos’è la virtualizzazione?

Il termine “virtualizzazione” fu coniato negli anni ‘60 del secolo scorso, facendo riferimento ad una macchina virtuale: ovvero, in generale, l’astrazione di una risorsa informatica. Questo include sia il far apparire una singola risorsa fisica come una moltitudine di risorse logiche (come server, sistemi operativi, applicativi, dispositivi) e sia il far apparire risorse fisiche multiple come se fossero un’unica risorsa logica (come server o dispositivi di memorizzazione). La creazione e la gestione di macchine virtuali è stata chiamata “virtualizzazione di piattaforma” o, recentemente, “virtualizzazione server”.

La virtualizzazione di piattaforma è ottenuta su una specifica piattaforma hardware da un programma di controllo (host), che crea un computer simulato, una macchina virtuale, per il suo software ospitato (guest). Il software guest non si limita alle singole applicazioni utenti: molti host permettono l’esecuzione di sistemi operativi completi. Il software ospitato viene eseguito come se stesse girando direttamente sull’hardware fisico, ma con alcune limitazioni. L’accesso alle risorse fisiche (rete, schermo, tastiera, dischi, dispositivi USB, ecc.) in genere viene gestito con un livello più limitato rispetto al processore e alla memoria. Spesso i software ospitati potrebbero avere delle limitazioni nell’accedere a particolari periferiche o potrebbero solo aver accesso ad un insieme ristretto delle effettive funzionalità del dispositivo fisico. Il tutto dipende dalle politiche di accesso all’hardware implementate dal software di virtualizzazione.

Esistono vari software di virtualizzazione, commerciali, gratuiti e alcuni anche open-source, disponibili per i principali sistemi operativi. Per citarne alcuni, senza un particolare ordine preferenziale:

  • VMWare Workstation
  • Microsoft VirtualPC
  • VMWare Server
  • Sun VirtualBox
  • Microsoft Hyper-V
  • QEMU
  • Microsoft Virtual Server
  • Parallels for Desktop
  • Parallels Workstation
  • …

Per altri software e maggiori informazioni: http://en.wikipedia.org/wiki/Comparison_of_platform_virtual_machines

 

Usi della virtualizzazione

La virtualizzazione può essere usata in vari contesti e modalità. Principalmente può essere utile per:

  • Server consolidation (unificazione di sistemi poco/sotto usati in un unico server fisico; unificazione di vecchi sistemi)
  • Testing (test QA; test di portabilità; nuovi sistemi operativi)
  • Navigazione web sicura (siti pericolosi; ricerche; download; script automatici; validazione; test sicurezza; ecc.)
  • Supporto tecnico (software e sistemi operativi dei clienti in macchine virtuali; ricreazione dell’ambiente dei clienti in maniera virtuale)
  • Prove software (test di caratteristiche e compatibilità; simulazione di scalabilità; catture-schermo; snapshot delle VM per ri-uso futuro)
  • Corsi (nessun problema di configurazione tra insegnanti e studenti; macchine per pratica/studio)
  • Demo (nuove VM per ogni demo garantiscono esperienze riproducibili)
  • Load balancing (cluster di VM piuttosto che nodi hardware)
  • Grid computing (Cloud computing)
  • Sviluppo software (gli sviluppatori usano una o più VM con tutte le risorse sulla propria macchina locale)

Negli  ultimi anni la virtualizzazione ha iniziato a prendere sempre più posto nelle strategie di organizzazione e nell’utilizzo nel mondo IT. Alcuni degli scenari precedenti sono correntemente utilizzati, mentre altri si stanno appena affacciando sul mondo della virtualizzazione. Di sicuro la virtualizzazione nell’IT crescerà sempre più in futuro, perchè i benefici che ne derivano sono molteplici.

L’ultimo punto della precedente lista rappresenta il punto di partenza dei miei esperimenti. In uno dei prossimi post vedremo la mia interpretazione di quest’uso della virtualizzazione.

giovedì 4 febbraio 2010

Windows Embedded Standard 2011

Windows Embedded Standard 2011 è la prossima versione di Windows Embedded Standard 2009 e sarà basata su Windows 7. La Release Candidate di Standard-2011 sarà presto disponibile. Per iniziare a conoscere questa nuova piattaforma, grazie ad un accordo con il Microsoft Windows Embedded Team, Beppe Platania (Beps Engineering CEO) ha iniziato a pubblicare sul suo blog una traduzione italiana degli articoli del Windows Embedded Blog riguardanti il prodotto.

Gli articoli saranno pubblicati su base settimanale e il primo è stato pubblicato appena qualche giorno fa. Se siete interessati, date un’occhiata al blog di Beppe!

sabato 16 gennaio 2010

Nuovo anno… nuovo concorso

AR-DressUp Era più o meno lo stesso periodo, l’anno scorso, quando fui avvisato che l’idea proposta, Home Communication Concentrator, era stata scelta come una dei 50 vincitori a livello mondiale nella prima fase del concorso Sparks Your Imagination 2009 di Microsoft (potete leggere di questo nel mio post precedente). Partecipare l’anno scorso è stato molto interessante, così ho deciso di prendere parte anche all’edizione di quest’anno, EmbeddedSpark 2010 Challenge.

Ieri sera, dopo un’impaziente attesa, sono stati finalmente annunciati i vincitori 2010 della prima fase, e sono stato molto contento nel scoprire che la mia proposta è nuovamente tra uno di essi!

Il tema del concorso dell’anno scorso era la Casa digitale del futuro. Quest’anno, invece, è Divertimento & Giochi. Durante le vacanze di Natale, mi sono venute un paio di idee e una di queste, ispirata due anni fa da mia sorella, è diventata quella proposta: AR-DressUp. Ulteriori informazioni sono disponibili nel documento inviato al concorso, potete trovarlo qui: AR-DressUP Contest Entry.

Nelle prossime settimane aggiornerò il blog con post riguardanti lo sviluppo del prototipo, rimanete sintonizzati!

 

Per quelli che non conoscono l’iniziativa Microsoft EmbeddedSpark, è una collezione di software Windows Embedded per hobbisti che consiste in:

  • Una versione completa di Windows Embedded CE 6.0 R2
  • Una versione completa di Visual Studio 2005 Professional

  • Una scheda SPARK-embedded di uno dei sette partner hardware di Microsoft

Di solito, partecipare al programma significa che è possibile ottenere l’hardware e il software al solo costo della scheda.

Tra le molte iniziative (blog, documentazione, lezioni, hands-on labs, forum della community, etc.) Microsoft organizza anche un concorso per hobbisti embedded e fornisce un kit EmbeddedSpark gratuitamente a tutti quelli che superano la prima selezione del concorso.

Il concorso è basato sulle abilità dei partecipanti e la fortuna non gioca alcun ruolo  nella determinazione dei vincitori. L’obiettivo infatti è quello di fornire un forum per gli sviluppatori Windows Embedded CE e permettere loro di diffondere le loro abilità/conoscenze, costruire la community Windows Embedded e pubblicizzare il programma SPARK Your Imagination / EmbeddedSpark.

lunedì 30 novembre 2009

Phome: un telefono di casa di nuova generazione

E’ passato un po’ di tempo dal mio primo post. Mi ero promesso di dedicare il giusto tempo e sforzo per scrivere regolarmente articoli sui miei interessi tecnologici, ma sfortunatamente ho fallito. Nei due mesi trascorsi sono stato molto occupato. Per la precisione, non solo nei due mesi passati, ma negli ultimi dieci: al di là di terminare gli esami all’università, ho lavorato quasi ogni giorno (e notte) alla mia tesi di laurea specialistica. Finalmente, ora è tutto concluso.
Questa è la descrizione di cosa ho sviluppato, magari a qualcuno di voi potrebbe interessare.

L’inizio: la casa digitale del futuro

Tutto è iniziato nel dicembre 2008. Stavo cercando un’idea per partecipare al concorso internazionale SPARKS Will Fly 2009, organizzato da Microsoft per promuovere le sue tecnologie embedded tra gli sviluppatori hobbisti e gli appassionati di tecnologia. Il tema del concorso era la casa digitale del futuro: per partecipare era necessario inviare un documento di 1-3 pagine che descrivesse un progetto embedded realizzabile con tecnologie Microsoft Embedded quali Windows Embedded CE 6.0 R2, Visual Studio 2005 e un kit EmbeddedSpark (VIA ARTiGO A1000 Barebone Pico-ITX).

L’idea mi è stata suggerita dalla mia nonna ottantenne, dopo la quotidiana “lezione tecnologica” per spiegare il funzionamento del telefono cellulare, dei telecomandi per TV+Videoregistratore+DVD (o in generale, ogni altro dispositivo tecnologico). Ho avuto una visione di una possibile parziale soluzione al problema che la gente continuamente affronta ogni giorno.

Siamo circondati da un’infinità di dispositivi e mezzi di comunicazione: telefoni, telefoni cellulari e smartphone, personal computer, palmari, televisori, dispositivi Media Center, console per videogiochi, applicazioni di Instant Messaging, browser Web, client E-Mail, software per comunicazioni VoIP, etc.
Al di là della linea di comunicazione c’è il mondo intero, ma spesso tutte queste tecnologie sono progettate per essere usate da solo una minoranza dei componenti familiari, per persone giovani, predisposte alla tecnologia e sempre in movimento: bambini, ragazzi e genitori. E gli altri? Anziani, casalinghe spaventate dalla tecnologia, persone disabili, persone che non hanno in casa ragazzi “tecnologici” che possano aiutarle, persone che pensano che mandare un SMS o navigare sul Web sia troppo complicato? Perché la nonna non può chattare, navigare sul web o inviare una E-Mail o un SMS? E come fare se vive da sola e soffre di qualche malattia (es. sordità, cecità, etc.) e volesse chiamare qualcuno, tenersi in contatto con i parenti o ricevere telefonate?

La maggior parte dei dispositivi sono troppo difficili da usare per le persone non-tecnologiche e offrono le loro funzionalità in modi inaccessibili, con centinaia di pulsanti, menu, sotto-menu, opzioni. Ogni dispositivo è differente dall’altro (le interfacce utente sono complesse e richiedono addestramento e pratica prima che sia possibile usarne al massimo le funzioni) e raramente possono condividere dati in maniera semplice ed automatica.

E se ci fosse qualcosa che potesse gestire tutte le comunicazioni in maniera consistente, automatica, semplice e accessibile per ogni membro di una famiglia?

Questo è il documento inviato nel gennaio 2009 alla prima fase eliminatoria del concorso: Home Communication Concentrator (HCC).


HCC: prototipo per il concorso

La vision immaginata per l’Home Communication Concentrator consiste in una rete cablata/wireless di sistemi embedded con schermo sensibile al tocco, che permette di gestire tutte le comunicazioni di casa progettata specificamente per persone non tecnologiche. I dispositivi possono essere posizionati ovunque, dove meglio si integrano con i propri bisogni e gli stili architetturali della propria casa: possono essere messi su superfici piatte o appesi ai muri.


L’attività principale di un dispositivo HCC è quella di monitorare e gestire le comunicazioni:
  • Telefonate / video chiamate (se è disponibile una webcam) / VOIP
  • E-Mail
  • Instant Messaging e chat
  • Navigazione Web
  • Rubrica / Calendario / lista delle cose da fare
Tutte le attività possono essere controllate direttamente tramite comandi vocali o con un tocco sul display. L’interfaccia utente è molto semplice e non c’è bisogno di addestramento: svolgere qualunque attività è semplice quanto fare una telefonata (o addirittura più semplice). Il sistema può interagire con l’utente tramite voce e suoni e/o tramite messaggi testuali e immagini sullo schermo.
Mentre non è in uso, un dispositivo HCC può essere usato come cornice digitale per sequenze di fotografie, riproduzione video o per quasi qualunque cosa potrebbe venire in mente a qualcuno (è possibile estenderne le funzionalità con widgets personalizzati).

L’idea proposta è passata alla selezione della prima fase (50 partecipanti su più di 150) e tra gennaio e marzo 2009 ho iniziato a sviluppare un prototipo funzionante del sistema, usando Windows Embedded CE 6.0 R2, Visual Studio 2005 e il kit VIA Artigo. Per partecipare alla seconda fase del concorso bisognava inviare un video di 2 minuti che mostrasse il dispositivo in funzione.
Il video dell’HCC è disponibile qui. E qui c’è il documento descrittivo allegato.

Sfortunatamente il dispositivo non è passato alla fase finale, ma nel contempo ho presentato lo studio di fattibilità prototipale ad un mio professore del Politecnico di Torino, Giovanni Malnati, che ha acconsentito per continuare il lavoro come tesi di laurea specialistica in Ingegneria Informatica. Grazie a lui, a Beppe Platania (Beps Engineering) e a Raffaele Menolascino (Microsoft), ho sviluppato la tesi presso il Microsoft Innovation Center Torino.

Phome: tesi, tecnologie e architettura

L’obiettivo principale della tesi è stato il progetto e lo sviluppo prototipale di un sistema embedded per telecomunicazioni di nuova generazione, che in un prossimo futuro potrebbe sostituire nelle nostre case il telefono, rendendo accessibili a tutti i membri familiari (dai più giovani ai meno giovani, con un occhio di riguardo per gli anziani e per le persone che soffrono di handicap o altri disturbi) i moderni mezzi di comunicazione, quali Internet, E-Mail, SMS, sistemi di Chat e Social Networking, VoIP e, ovviamente, le telefonate tradizionali. Tra i requisiti di sviluppo è stato richiesto che la soluzione proposta fosse realizzabile con tecnologie attualmente disponibili (in particolare Microsoft Embedded), in modo da poter contenere i costi hardware e software e per avere un breve time-to-market.

A causa dei molti problemi affrontati durante lo sviluppo del prototipo per il concorso, in particolare la mancanza in Windows Embedded CE di un framework per la creazione di interfacce utente ricche ed accattivanti e le limitazioni hardware del kit (problemi di compatibilità dell’adattore Bluetooth USB, piccolo display touch, connettività di rete limitata), per il lavoro della tesi ho deciso di cambiare hardware e adottare un’altra tecnologia Microsoft Embedded. Così il nuovo prototipo è stato implementato usando un dispositivo Asus EeeTop equipaggiato con un’immagine personalizzata di Microsoft Windows Embedded Standard (WES). La parte di telefonia è fornita al sistema tramite un telefono cellulare Bluetooth HTC Touch Diamond, basato sul sistema operativo Microsoft Windows Mobile 6.1.


Phome
è un dispositivo all-in-one, dall’aspetto accattivante e che costituisce un telefono di casa di nuova generazione: ingloba le funzionalità di telefono, gestione SMS, gestione E-Mail, browser Internet e cornice digitale in un unico dispositivo, offrendo un’interfaccia utente touch-friendly semplice, intuitiva, pensata soprattutto per l’uso da parte di persone anziane o poco pratiche di tecnologia e che richiede quindi solo un minimo sforzo di apprendimento. L’interfaccia, tra le altre cose, include funzionalità come tastiera virtuale e tastierino numerico virtuale per l’uso senza tastiera/mouse esterni, un sistema di input predittivo ad ampio vocabolario per facilitare la digitazione, funzionalità Text-To-Speech per ausilio alla visualizzazione.

Le funzionalità di telefonia ed SMS sono fornite tramite un telefono cellulare collegato via Bluetooth: Phome è un’unità Bluetooth Headset “da casa” e, quando connesso ad un dispositivo, ne diventa l’auricolare offrendo funzionalità di vivavoce; inoltre, grazie ad un profilo Bluetooth appositamente progettato, il Phome Mobile Service, basato su un protocollo client/server ad-hoc, rappresenta una semplice ed intuitiva interfaccia di controllo remoto del telefono, permettendo anche agli anziani di poter usare un cellulare e inviare/ricevere SMS o gestire la rubrica. Si è resa necessaria tale implementazione per poter astrarre dal particolare tipo di modello e sistema operativo, rendendo Phome potenzialmente compatibile con qualunque telefono Bluetooth. Il prototipo è stato sviluppato su un telefono Windows Mobile (usando .NET Compact Framework 3.5, ma è stato condotto uno studio di fattibilità anche su Android e piattaforme che supportano Java J2ME).

Per aggiungere la connettività Bluetooth all’EeeTop, è stato impiegato un adattatore Bluetooth USB con supporto allo stack Widcomm: questo stack è infatti l’unico che fornisce API gratuite, ben documentate e che permettono agli sviluppatori di accedere agli strati bassi dello stack, audio SCO incluso, consentendomi di re-implementare il profilo Bluetooth Headset (auricolare) secondo le specifiche standard e poter così controllare direttamente il routing audio con le API Multimediali Win32.

Oltre all’immagine di sistema WES, ho progettato e realizzato:
  • un applicativo Windows Presentation Foundation, PhomeUI, che ha la funzionalità di shell di sistema e che va a sostituire la shell nativa “explorer” di Windows; è stata progettata adottando una struttura modulare e stratitificata, impiegando anche recenti design pattern, tra cui Model-View-ViewModel (MVVM), Separated Presentation e Composite Application, per permettere la separazione dei ruoli designer/sviluppatore, supportare l’estendibilità/plug-in, la testabilità e un framework evoluto per lo sviluppo di interfacce grafiche (che mi ha permesso di implentare tutta l’interfaccia grafica in meno di due mesi, mentre venivano sviluppate contemporaneamente le altri parti di sistema).
  • librerie condivise (in parte native C++ e in parte managed) che forniscono le funzionalità alla shell per quanto riguarda:
    • Gestione Bluetooth + profili (nativa)
    • Gestione dell’audio Bluetooth (nativa)
    • Accesso ai database MS-SQL CE a tre livelli
    • Molti controlli WPF UI personalizzati
    • Funzionalità di base per la shell e per i moduli (eventi, comandi, Bluetooth Manager, Audio Manager, E-Mail Manager/POP3 Client, Settings Manager, Text-To-Speech con MSAPI 5.1)
    • Funzionalità di base per l’interfaccia grafica e per i moduli (Application Manager, Module Manager, Virtual Keyboard/Numpad, altri controlli UI)
  • un applicativo .NET Compact Framework 3.5, PhomeServiceServer, per realizzare il servizio Bluetooth Phome su telefoni cellulari Windows Mobile 6.0 o successivi.
  • moduli applicativi di esempio realizzati usando il pattern MVVM, per fornire all'utente:
    • funzionalità di telefonia (composizione, rubrica, preferiti);
    • gestione SMS (ricevuti, inviati, bozze, composizione, Tastiera virtuale + Input Predittivo);
    • gestione E-Mail (supporto per account POP3 multipli, E-Mail ricevute/inviate/bozze, composizione);
    • Impostazioni / configurazione Bluetooth con singolo tocco;
    • Home screen;
    • Web Browser (basato sul progetto Google Chromium, integrato in WPF tramite un wrapper open-source modificato per poterlo usare con la tastiera virtuale e renderlo compatibile con gli accorgimenti touch-friendly adottati nel resto dell’interfaccia);
    • Album foto (visualizzatore e presentazione a schermo intero).
Qui ci sono alcuni screenshot e foto del dispositivo e dell’interfaccia utente, realizzate durante lo sviluppo.





Conclusioni


Il sistema prototipale realizzato possiede un insieme minimo di funzioni che permettono alle persone e agli sviluppatori di valutare praticamente l’utilità e l’efficacia di un dispositivo simile in un generico contesto casalingo. L’obiettivo non era avere un prodotto completo e finito, ma quello di mostrare che dispositivi semplici da usare ed integrati possono già essere realizzati oggi, con tecnologie hardware e software già disponibili, a confronto con le migliaia di complicati dispositivi di comunicazione che ogni giorno ci circondano.

Ovviamente c’è ampio spazio per miglioramenti e ho già un po’ di idee per sviluppi futuri e una migliore interazione uomo-macchina e integrazione nel contesto casalingo, ma per il momento sono molto soddisfatto dei risultati raggiunti, della laurea e sono felice del fatto che ora mia nonna può inviare e ricevere SMS/E-Mail ed effettuare telefonate usando il telefono cellulare con appena qualche tocco su Phome.

mercoledì 9 settembre 2009

Una nuova avventura

Ciao a tutti!
Questo è il mio primo post sul mio primo blog pubblico. Ho sempre voluto avere un posto in cui scrivere alcuni miei pensieri e condividere le mie conoscenze sulla tecnologia e sullo sviluppo del software, nella speranza che qualcuno potesse trovare qualcosa di interessante e di utile. Sfortunatamente ho sempre avuto (e anche tutt'ora ho) poco tempo per fare queste cose.

Ogni volta che voglio fare qualcosa, generalmente provo a farla nel migliore dei modi: se so che non posso farcela al meglio, ancora prima di incominciare, allora non inizio nemmeno.

Ora ho deciso di tenere un blog, nella speranza che iniziare in questo giorno particolare (09/09/09) mi aiuti a farlo nel migliore dei modi, dedicando gli sforzi e il tempo necessari per scrivere qualcosa su di me, sulle mie passioni e sul mio lavoro: ingegneria, informatica, tecnologia e sviluppo software.

Come il nome del blog stesso può suggerire, i miei interessi si focalizzano su sviluppo Embedded, per essere più specifici usando tecnologie Microsoft, e tutto il mondo che gira intorno ad esse: Windows CE, Windows Mobile, Windows Embedded. Inoltre adoro i database, la grafica e lo sviluppo web, così il blog coprirà anche questioni riguardanti SQL Server, ASP.NET, WPF, Silverlight e lo sviluppo di applicazioni Windows in generale.

Per cortesia, siate liberi di fare commenti e/o dare suggerimenti su qualunque cosa che secondo voi avrei potuto fare meglio oppure che ho completamente sbagliato. Naturalmente sono benvenuti anche commenti su cose che potreste avere apprezzato!