martedì 12 maggio 2009

E-Book Programmare in WPF

E' disponibile da oggi a questo indirizzo sul sito Manuali.net, il mio e-book sulla programmazione in WPF. Questo e-book ha un taglio molto pratico e si prefigge l'obiettivo di introdurre rapidamente il lettore alla programmazione di Windows Presentation Foundation presentando tutti i nuovi concetti introdotti da questa tecnologia insieme a numerosi esempi di codice ed immagini esplicative. Viene ovviamente anche trattato il nuovo linguaggio di markup XAML, utile non solo per lo sviluppo in WPF ma anche per realizzare applicazioni Silverlight.

mercoledì 29 aprile 2009

Messaggi divertenti #3: GMail felice per la mancanza di spam

Ecco un altro messaggio divertente direttamente da GMail:


sabato 21 marzo 2009

Messaggi divertenti #2: Errore per qualche motivo

Ecco un altro messaggio divertente da parte di FireFox:



domenica 1 febbraio 2009

Silverlight in pillole: #2

Il controllo Ellipse permette di creare un ellisse date le sue dimensioni di larghezza ed altezza. Per l'ellisse è possibile impostare un riempimento che può essere uniforme o complesso quale ad esempio un gradiente od una immagine di riempimento. Vi sono quindi le due proprietà Stroke e StrokeThickness per impostare colore e dimensione della linea di delimitazione dell'ellisse. Il codice XAML per creare un ellisse è il seguente:

<Ellipse
Width="200"
Height="160"
Fill="Red"
Stroke="Black"
StrokeThickness="3" />


Mentre in C# avremo:


Ellipse myEllipse = new Ellipse();
myEllipse.Height = 100;
myEllipse.Width = 200;

SolidColorBrush redBrush = new SolidColorBrush();
redBrush.Color = Colors.Red;

SolidColorBrush blackBrush = new SolidColorBrush();
blackBrush.Color = Colors.Black;

myEllipse.StrokeThickness = 3;
myEllipse.Stroke = blackBrush;
myEllipse.Fill = redBrush;

myGrid.Children.Add(myEllipse);


Se impostiamo i valori di Width ed Height allo stesso valore, otteniamo un cerchio. Per impostare un riempimento che non sia un semplice colore uniforme, possiamo specificare per la proprietà Fill un LinearGradientBrush in questo modo:

<Ellipse
Width="200"
Height="160"
Fill="Red"
Stroke="Black"
StrokeThickness="3">
<Ellipse.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="White" Offset="0.50" />
<GradientStop Color="Blue" Offset="1.0" />
</LinearGradientBrush>
</Ellipse.Fill>
</Ellipse>


Questo codice visualizza un ellisse riempito per metà con il colore bianco e per metà con il colore blu in modo tale che il passaggio tra i due colori sia graduale e sfumato.

In alternativa potremmo anche specificare una immagine di sfondo da utilizzare come riempimento del nostro ellisse (lo stesso discorso vale anche per il rettangolo):

<Ellipse
Width="200"
Height="160"
Fill="Red"
Stroke="Black"
StrokeThickness="3">
<Ellipse.Fill>
<ImageBrush ImageSource="sfondo.jpg" />
</Ellipse.Fill>
</Ellipse>


Aggiungendo inoltre anche la proprietà Opacity impostata ad un valore compreso tra 0 ed 1, possiamo ottenere una leggera trasparenza del riempimento in modo da permettere la visione di eventuali elementi posti dietro l'oggetto:

<Ellipse
Width="200"
Height="160"
Fill="Red"
Stroke="Black"
StrokeThickness="3">
Opacity="0.4"
<Ellipse.Fill>
<ImageBrush ImageSource="sfondo.jpg" />
</Ellipse.Fill>
</Ellipse>

mercoledì 21 gennaio 2009

Obama in Silverlight

No, non parlo di una implementazione in Silverlight del neo presidente degli Stati Uniti, bensì di quello che forse è stato il vero battesimo del fuoco di questa tecnologia Microsoft. Silverlight infatti è stato utilizzato sul sito PIC2009, uno dei siti ufficiali del grande evento di insediamento del presidente Obama che si è svolto ieri negli Stati Uniti, per trasmettere in streaming la manifestazione ed il discorso presidenziale, uno dei discorsi forse più attesi nella storia degli stati Uniti d'America.

Ovviamente, come si poteva prevedere, il traffico verso questo ed altri siti che hanno trasmesso il discorso in diretta è stato notevole e quindi per questo motivo possiamo dire che Silverlight ha affrontato per la prima volta una prova "seria" sul campo, prova dalla quale ne è venuto fuori vincitore in quanto non sono stati segnalati problemi significativi.

Per chi si fosse perso questo storico evento è ancora possibile vedere il discorso a questo indirizzo e non si potrà non notare che il plugin utilizzato è proprio il nostro tanto amato Silverlight.

Non per niente il presidente Obama è stato più volte definito un amante delle nuove tecnologie oltre al fatto di aver fatto uso intelligente della rete per la sua campagna elettorale, ed infatti ci si aspetta proprio da lui interventi interessanti ed innovativi su questo fronte.

lunedì 19 gennaio 2009

How I got Started in Software Development

Ringrazio il mio amico Mauro per la taggatura e mi accodo anch'io a questa "catena di sant'Antonio" informatica :-)

How old were you when you started programming?
A quale età hai cominciato a programmare?

Avevo 12 anni. Mi regalarono uno ZX Spectrum+2 della Sinclair con un drive a cassette (si, cassette, quelle che si mettevano nelle autoradio degli anni '80).

How did you get started in programming?
Come hai cominciato a programmare?

Con lo Spectrum veniva distribuito il manuale con alcune pagine che spiegavano i rudimenti del BASIC e con questo feci le mie prime "applicazioni". Ricordo un programmillo che mi faceva da rubrica telefonica, solo che tra accensione del PC, caricamento della cassetta e tutto il resto, facevo prima a segnarmeli a mano. Poi all'istituto tecnico per periti informatici imparai Assembler e Pascal.

What was your first language?
Qual’è stato il tuo primo linguaggio di programmazione?

Il BASIC della Sinclair

What was the first real program you wrote?
Qual’è stato il primo programma vero che hai scritto?

La Rubrica Telefonica in BASIC

What languages have you used since you started programming?
Quali linguaggi hai usato da quando hai cominciato a programmare?

BASIC, Assembler, Pascal, Turbo Pascal, HTML, ASP, JavaScript, C#

What was your first professional programming gig?
Quando è stato il tuo primo vero lavoro da programmatore?

Nel 1998, subito dopo il diploma, entrai nella mia prima azienda dove vi rimasi per 6 anni.

If you knew then what you know now, would you have started programming?
Con il senno di poi, rifaresti lo stesso il programmatore? Ricominceresti a programmare?

Se sapessi fare altro altrettanto proficuamente, no. Ci sono carriere sicuramente più semplici e più remunerative. Anche se in fondo ogni tanto mi rendo conto che non mi posso lamentare e che il mio lavoro mi piace. Ma solo ogni tanto! ;-)))

If there is one thing you learned along the way that you would tell new developers, what would it be?
Se ci fosse una cosa che hai imparato nella tua carriera e che vorresti dire ai giovani programmatori, cosa diresti?

Fate questo lavoro solo se vi appassiona veramente, altrimenti lasciate perdere.

What's the most fun you've ever had ... programming?
Qual’è la cosa più divertente che hai programmato?

L'applicativo di fatturazione che ho sviluppato per me medesimo :-)

sabato 17 gennaio 2009

Silverlight in pillole: #1

Questo post è il primo di una mini serie che chiamerò Silverlight in pillole ed in cui riporterò piccoli e concisi esempi di come implementare gli oggetti grafici più semplici di Silverlight. Partiamo quindi dal controllo Line. Questo controllo permette di creare una linea dati due punti, quello di inizio e quello di fine.

Il codice XAML da scrivere per disegnare una linea in Silverlight è:


<Line
X1="10" Y1="10"
X2="120" Y2="125"
Stroke="Black"
StrokeThickness="2" />

Le proprietà X1 ed Y1 definiscono le coordinate X ed Y del primo punto della linea, mentre X2 ed Y2 definiscono il secondo punto. Con Stroke impostiamo il colore che avrà la nostra linea mentre con StrokeThickness specifichiamo lo spessore della linea in pixel.

Per creare la stessa linea utilizzando codice C# e quindi nel code behind, scriveremo:

Line myLine = new Line();
myLine.X1 = 10;
myLine.Y1 = 10;
myLine.X2 = 120;
myLine.Y2 = 125;

SolidColorBrush blackBrush = new SolidColorBrush();
blackBrush.Color = Colors.Black;

myLine.StrokeThickness = 2;
myLine.Stroke = blackBrush;

myGrid.Children.Add(myLine);

martedì 11 novembre 2008

Messaggi divertenti

Ecco cosa è apparso quando ho scritto sulla barra degli indirizzi di FireFox "about:config" per modificare una impostazione:


venerdì 31 ottobre 2008

Blocco dei video Flash su FireFox (compreso YouTube)

Avevo notato da qualche tempo un problema fastidiosissimo che accadeva con FireFox quando su una pagina erano presenti video in flash, come quelli di YouTube. In pratica in maniera del tutto "casuale" i video venivano visualizzati solo per 3 secondi dopo di che si bloccavano inesorabilmente.

Alle volte il problema si risolveva chiudendo e riaprendo FireFox ed in ogni caso con Internet Explorer tutto questo non accadeva. Dopo qualche ricerca sul web sono venuto a conoscenza di un possibile bug di Flash per FireFox che andando in conflitto con altre applicazioni che fanno uso dell'audio del PC, causa questo comportamento anomalo. Effettivamente da alcune prove (chiudendo tutte le possibili applicazioni che possono far uso della scheda audio) e riavviando FireFox il problema spariva.

Sebbene però conoscevo a quel punto la causa del fastidioso bug non sapevo ancora come risolverlo (se non installando una versione più vecchia del plugin). Finalmente con la nuova versione 10 di Flash Player ho notato che il problema è stato risolto. Quindi per risolvere questo bug è ora sufficiente installare la nuova versione di Adobe Flash Player per FireFox.

martedì 21 ottobre 2008

Liberare spazio su Vista

Come è ormai noto Vista non è certo parsimonioso nel consumo delle risorse di sistema. Ecco un utile post sul blog di Scott Hanselman che elenca una serie di consigli per liberare spazio disco su Windows Vista. In realtà ne basterebbe solo uno: non installare Vista! ;-)