lunedì 8 marzo 2010

8 Marzo: giornata internazionale della donna

Oggi 8 marzo è definito come il giorno della festa della donna. Anche se a me piace molto di più la definizione che ne dà wikipedia. Non mi soffermo a dire che secondo me non è una festa, ma un giorno nel quale ricordare chi ha lottato per ottenere ciò che noi donne siamo oggi.

Quando mi vengono rivolti gli auguri, io li accetto, perchè so che chi me li rivolge lo fa con affetto e con gentilezza. Ma vorrei tanto un mondo dove alla donna non fosse dedicata una giornata, perchè, pur nelle evidenti cose che ci differenziano dagli uomini, noi donne nelle realtà sociali e lavorative in cui operiamo non dobbiamo essere soggette ad alcuna discriminazione.
Ma mi chiedo: è sempre colpa degli uomini, o talvolta siamo noi a voler essere trattate in maniera differente? a non creare le condizioni per un equo trattamento?
La speranza che ho è quella che le donne nel mondo della tecnologia, ed in particolare nel mondo dell'informatica, possano presto aumentare, non solo numericamente, ma soprattuto nello spazio e nel peso che ci viene dato, e questo ovviamente perchè ce lo siamo meritate!

OrangeDotNet è membro di Ineta.

Ineta (International .NET Association) è un'associazione internazionale no profit, che ha come scopo quello di offrire supporto a tutti gli user group, che hanno come principale obbiettivo quello di condividere e diffondere le conoscenze che ruotano attorno alle tecnologie Microsoft ed in particolre del mondo .net.


E' da oggi ufficiale che anche noi di OrangeDotNet ne siamo entrati a far parte. Non vi nascondo il pizzico di emozione quando specificando in questa pagina il nostro nome, e avviando la ricerca, è apparso il nostro logo con accanto la scritta:

The first community on Microsoft .NET Development Platform in Sicily (Italy)





domenica 7 marzo 2010

Mentre contiamo prepariamoci alle novità

Mancano solo 35 giorni al lancio di Visual Studio 2010, e basta aggiungerne due per attivare anche il count down per la tappa siciliana del Community Tour.

Non si può certo arrivare impreparati alle novità che verranno presentante nel corso di questo evento, così ho pensato bene di condividere nel mio blog giornalmente (almeno spero), ciò che di nuovo arriva con il framework 4.0 e con Visual Studio 2010.

Ho pensato di cominciare questo appuntamento, parlando del nuovo tipo che verrà reso disponibile con il 4.0 e che si chiama System.Tuple, che è una collezione di dati tipizzati ma eterogenei.
Detto così sembrerebbe che non c'è nessuna novità, visto che è lecito oggi scrivere del codice del tipo:

object[] vettoreDatiEterogenei = new object[]{"Laura", 10}




o sfruttare le classi del namespace System.Collections.Generic.
Il vantaggio che si ha dall'utilizzare le Tuple,

var t= Tuple.Create("Hello", 4);



è che è possibile evitare l'uso di cast, perchè sarà lo stesso compilatore ad assicura la conversione al giusto tipo.

giovedì 4 marzo 2010

OrangeDotNet & Radio Zammù continua...

Continua il nostro appuntamento con radio Zammù.

Oggi parleremo della nuova frontiera dei controller per i dispositivi elettronici, con particolare riferimento al progetto skininput.


E poi daremo una bella dritta a tutti coloro che spesso si trovano a dover collaborare per la creazione di un documento, ma che non sono fisicamente davanti allo stesso pc. Il modo tradizionale sarebbe quello di scambiarsi una serie di email con allegato il documento, al quale aggiungere le proprie modifiche.
Scopriremo invece, come sfruttando dei servizi online gratuiti, è possibile evitare il triste rito di: mando la mail, scarico il documento, lo confronto, poi lo aggiorno, poi creo una nuova mail, allego il file modificato, mando la mail…etc…




lunedì 1 marzo 2010

Articolo su No Repro Bug

Sia gli sviluppatori, sia i tester si trovano sempre ad affrontare il problema del No Repro Bug.
Per capire come poter limitare il suo impatto nel ciclo di vita del software utilizzando Visual studio 2010, vi consiglio di leggere l'articolo che Giancarlo ha pubblicato su questa rivista.

domenica 28 febbraio 2010

Microsoft Community Tour 2010

In occasione del lancio di Visual Studio 2010, Microsoft ha organizzato un nuovo Community Tour, e ovviamente noi di OrangeDotNet siamo già pronti!
Per il momento posso però solo confermare la location

Aula Magna - Facoltà di Ingegneria (Edificio per la didattica)
Viale Andrea Doria, 6 - Cittadella Universitaria (Catania)
la data 14 aprile, e soprattuto la presenza di Vittorio Bertocci, Lorenzo Barbieri e ovviamente di Giancarlo.

Sull'agenda e sulle modalità per le prenotazioni all'evento, dobbiamo ancora aspettare qualche giorno.

Behaviors e prestazioni in WCF

Quando si progetta un sistema, qualunque sia la sua natura, le prestazioni rientrano quasi sempre tra i vincoli progettuali che devono essere rispettati.
Qualsiasi applicazione software è un sistema, e quindi anche per essa esistono dei parametri per valutarne la bontà. Se poi questa applicazione è un applicazione distribuita, le performance, insieme alla sua scalabilità, diventano delle caratteristiche fondamentali, che possono decretarne il successo o il fallimento.

Per non creare ambiguità, e sebbene il loro significato sia noto, iniziamo dando la definizione di

  • Concorrenza: misura quanti tasks (richieste, jobs, transazioni) possono essere eseguiti contemporaneamente;
  • Tempo di esecuzione: misura quanto tempo occorre per completare un task;

Per una applicazione WCF, uno dei parametri che può essere usato per stabilirne le prestazioni è il throughput, ovvero al quantità di task che vengono eseguiti in uno specifico intervallo di tempo.

N.Task/tempo di esecuzione


Da questa definizione si capisce come per aumentare il throughput si può intervenire o sulla velocità di esecuzione dei task, o sul numero di task che possono essere eseguiti parallelamente.
La velocità di esecuzione dipende dall'algortimo con il quale il task è implementato o dall'hardware su cui esso è eseguito, pertanto WCF non può migliorarlo.

Quello su cui invece può agire WCF è il numero di task eseguiti nell'unità di tempo, ovvero la concorrenza, che è controllabile attraverso i behaviors IstanceContextMode e ConcurrencyMode.


Il primo è usato per controllare le istanze del servizio e può assumere tre valori:

  • Single: tutte le richieste vengono gestite da un'unica istanza del servizio, che implementa un singleton;
  • PerCall: per ogni richiesta viene creata un istanza del servizio;
  • PerSession:viene creata un istanza del servizio per ogni sessione del client.

Il ConcurrencyMode è un behaviors utilizzato per controllare la concorrenza di un thread all'interno dell'istanza di un servizio e può assumere i valori:

  • Single: un solo thread alla volta può accedere al servizio;
  • Reentrant: solo un thread alla volta può accedere al servizio, ma può lasciarlo e ritornare dopo;
  • Multiple: thread multipli possono accedere al servzio simultaneamente.

Per default un servizio wcf ha uno stato che gestisce un solo thread sul servizio (ConcurrencyMode.Single), ed il servizio viene istanziato per ogni nuova sessione (InstanceContextMode.PerSession)

Per creare invece un servizio che possa migliorare le sue performance, si può settare il suo behaviors in modo che su una singola sua istanza possano accere più thread:

[ServiceBehavior (InstanceContextMode= InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)]